{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Deep Learning Models -- A collection of various deep learning architectures, models, and tips for TensorFlow and PyTorch in Jupyter Notebooks.\n",
    "- Author: Sebastian Raschka\n",
    "- GitHub Repository: https://github.com/rasbt/deeplearning-models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sebastian Raschka \n",
      "\n",
      "CPython 3.7.1\n",
      "IPython 7.2.0\n",
      "\n",
      "torch 1.0.0\n"
     ]
    }
   ],
   "source": [
    "%load_ext watermark\n",
    "%watermark -a 'Sebastian Raschka' -v -p torch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Runs on CPU or GPU (if available)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model Zoo -- Conditional Variational Autoencoder \n",
    "\n",
    "## (without labels in reconstruction loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A simple conditional variational autoencoder that compresses 768-pixel MNIST images down to a 35-pixel latent vector representation.\n",
    "\n",
    "\n",
    "This implementation DOES NOT concatenate the inputs with the class labels when computing the reconstruction loss in contrast to how it is commonly done in non-convolutional conditional variational autoencoders. Not considering class-labels in the reconstruction loss leads to slightly worse results compared to the implementation that does concatenate the labels with the inputs to compute the reconstruction loss. For reference, see the implementation [./autoencoder-cvae.ipynb](./autoencoder-cvae.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import datasets\n",
    "from torchvision import transforms\n",
    "\n",
    "\n",
    "if torch.cuda.is_available():\n",
    "    torch.backends.cudnn.deterministic = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Device: cuda:1\n",
      "Image batch dimensions: torch.Size([128, 1, 28, 28])\n",
      "Image label dimensions: torch.Size([128])\n"
     ]
    }
   ],
   "source": [
    "##########################\n",
    "### SETTINGS\n",
    "##########################\n",
    "\n",
    "# Device\n",
    "device = torch.device(\"cuda:1\" if torch.cuda.is_available() else \"cpu\")\n",
    "print('Device:', device)\n",
    "\n",
    "# Hyperparameters\n",
    "random_seed = 0\n",
    "learning_rate = 0.001\n",
    "num_epochs = 50\n",
    "batch_size = 128\n",
    "\n",
    "# Architecture\n",
    "num_classes = 10\n",
    "num_features = 784\n",
    "num_hidden_1 = 500\n",
    "num_latent = 35\n",
    "\n",
    "\n",
    "##########################\n",
    "### MNIST DATASET\n",
    "##########################\n",
    "\n",
    "# Note transforms.ToTensor() scales input images\n",
    "# to 0-1 range\n",
    "train_dataset = datasets.MNIST(root='data', \n",
    "                               train=True, \n",
    "                               transform=transforms.ToTensor(),\n",
    "                               download=True)\n",
    "\n",
    "test_dataset = datasets.MNIST(root='data', \n",
    "                              train=False, \n",
    "                              transform=transforms.ToTensor())\n",
    "\n",
    "\n",
    "train_loader = DataLoader(dataset=train_dataset, \n",
    "                          batch_size=batch_size, \n",
    "                          shuffle=True)\n",
    "\n",
    "test_loader = DataLoader(dataset=test_dataset, \n",
    "                         batch_size=batch_size, \n",
    "                         shuffle=False)\n",
    "\n",
    "# Checking the dataset\n",
    "for images, labels in train_loader:  \n",
    "    print('Image batch dimensions:', images.shape)\n",
    "    print('Image label dimensions:', labels.shape)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "##########################\n",
    "### MODEL\n",
    "##########################\n",
    "\n",
    "\n",
    "def to_onehot(labels, num_classes, device):\n",
    "\n",
    "    labels_onehot = torch.zeros(labels.size()[0], num_classes).to(device)\n",
    "    labels_onehot.scatter_(1, labels.view(-1, 1), 1)\n",
    "\n",
    "    return labels_onehot\n",
    "\n",
    "\n",
    "class ConditionalVariationalAutoencoder(torch.nn.Module):\n",
    "\n",
    "    def __init__(self, num_features, num_hidden_1, num_latent, num_classes):\n",
    "        super(ConditionalVariationalAutoencoder, self).__init__()\n",
    "        \n",
    "        self.num_classes = num_classes\n",
    "        \n",
    "        ### ENCODER\n",
    "        self.hidden_1 = torch.nn.Linear(num_features+num_classes, num_hidden_1)\n",
    "        self.z_mean = torch.nn.Linear(num_hidden_1, num_latent)\n",
    "        # in the original paper (Kingma & Welling 2015, we use\n",
    "        # have a z_mean and z_var, but the problem is that\n",
    "        # the z_var can be negative, which would cause issues\n",
    "        # in the log later. Hence we assume that latent vector\n",
    "        # has a z_mean and z_log_var component, and when we need\n",
    "        # the regular variance or std_dev, we simply use \n",
    "        # an exponential function\n",
    "        self.z_log_var = torch.nn.Linear(num_hidden_1, num_latent)\n",
    "        \n",
    "        \n",
    "        ### DECODER\n",
    "        self.linear_3 = torch.nn.Linear(num_latent+num_classes, num_hidden_1)\n",
    "        # don't output labels in resulting image as it yields worse results\n",
    "        #self.linear_4 = torch.nn.Linear(num_hidden_1, num_features+num_classes)\n",
    "        self.linear_4 = torch.nn.Linear(num_hidden_1, num_features)\n",
    "\n",
    "    def reparameterize(self, z_mu, z_log_var):\n",
    "        # Sample epsilon from standard normal distribution\n",
    "        eps = torch.randn(z_mu.size(0), z_mu.size(1)).to(device)\n",
    "        # note that log(x^2) = 2*log(x); hence divide by 2 to get std_dev\n",
    "        # i.e., std_dev = exp(log(std_dev^2)/2) = exp(log(var)/2)\n",
    "        z = z_mu + eps * torch.exp(z_log_var/2.) \n",
    "        return z\n",
    "        \n",
    "    def encoder(self, features, targets):\n",
    "        ### Add condition\n",
    "        onehot_targets = to_onehot(targets, self.num_classes, device)\n",
    "        x = torch.cat((features, onehot_targets), dim=1)\n",
    "\n",
    "        ### ENCODER\n",
    "        x = self.hidden_1(x)\n",
    "        x = F.leaky_relu(x)\n",
    "        z_mean = self.z_mean(x)\n",
    "        z_log_var = self.z_log_var(x)\n",
    "        encoded = self.reparameterize(z_mean, z_log_var)\n",
    "        return z_mean, z_log_var, encoded\n",
    "    \n",
    "    def decoder(self, encoded, targets):\n",
    "        ### Add condition\n",
    "        onehot_targets = to_onehot(targets, self.num_classes, device)\n",
    "        encoded = torch.cat((encoded, onehot_targets), dim=1)        \n",
    "        \n",
    "        ### DECODER\n",
    "        x = self.linear_3(encoded)\n",
    "        x = F.leaky_relu(x)\n",
    "        x = self.linear_4(x)\n",
    "        decoded = torch.sigmoid(x)\n",
    "        return decoded\n",
    "\n",
    "    def forward(self, features, targets):\n",
    "        \n",
    "        z_mean, z_log_var, encoded = self.encoder(features, targets)\n",
    "        decoded = self.decoder(encoded, targets)\n",
    "        \n",
    "        return z_mean, z_log_var, encoded, decoded\n",
    "\n",
    "    \n",
    "torch.manual_seed(random_seed)\n",
    "model = ConditionalVariationalAutoencoder(num_features,\n",
    "                                          num_hidden_1,\n",
    "                                          num_latent,\n",
    "                                          num_classes)\n",
    "model = model.to(device)\n",
    "    \n",
    "\n",
    "##########################\n",
    "### COST AND OPTIMIZER\n",
    "##########################\n",
    "\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 001/050 | Batch 000/469 | Cost: 70192.2188\n",
      "Epoch: 001/050 | Batch 050/469 | Cost: 25749.1211\n",
      "Epoch: 001/050 | Batch 100/469 | Cost: 21997.0703\n",
      "Epoch: 001/050 | Batch 150/469 | Cost: 19867.7832\n",
      "Epoch: 001/050 | Batch 200/469 | Cost: 19859.0391\n",
      "Epoch: 001/050 | Batch 250/469 | Cost: 18637.0820\n",
      "Epoch: 001/050 | Batch 300/469 | Cost: 17863.7227\n",
      "Epoch: 001/050 | Batch 350/469 | Cost: 16946.2188\n",
      "Epoch: 001/050 | Batch 400/469 | Cost: 16602.0566\n",
      "Epoch: 001/050 | Batch 450/469 | Cost: 16563.0742\n",
      "Epoch: 002/050 | Batch 000/469 | Cost: 15998.6934\n",
      "Epoch: 002/050 | Batch 050/469 | Cost: 15980.9590\n",
      "Epoch: 002/050 | Batch 100/469 | Cost: 15842.0508\n",
      "Epoch: 002/050 | Batch 150/469 | Cost: 15789.3096\n",
      "Epoch: 002/050 | Batch 200/469 | Cost: 15471.0068\n",
      "Epoch: 002/050 | Batch 250/469 | Cost: 15047.9609\n",
      "Epoch: 002/050 | Batch 300/469 | Cost: 14812.4609\n",
      "Epoch: 002/050 | Batch 350/469 | Cost: 15064.4570\n",
      "Epoch: 002/050 | Batch 400/469 | Cost: 14684.2832\n",
      "Epoch: 002/050 | Batch 450/469 | Cost: 14621.3662\n",
      "Epoch: 003/050 | Batch 000/469 | Cost: 14662.3740\n",
      "Epoch: 003/050 | Batch 050/469 | Cost: 14373.9258\n",
      "Epoch: 003/050 | Batch 100/469 | Cost: 14580.2539\n",
      "Epoch: 003/050 | Batch 150/469 | Cost: 14757.9639\n",
      "Epoch: 003/050 | Batch 200/469 | Cost: 14678.1953\n",
      "Epoch: 003/050 | Batch 250/469 | Cost: 14471.2031\n",
      "Epoch: 003/050 | Batch 300/469 | Cost: 14082.8926\n",
      "Epoch: 003/050 | Batch 350/469 | Cost: 14371.0566\n",
      "Epoch: 003/050 | Batch 400/469 | Cost: 13371.3496\n",
      "Epoch: 003/050 | Batch 450/469 | Cost: 14689.0518\n",
      "Epoch: 004/050 | Batch 000/469 | Cost: 13579.7764\n",
      "Epoch: 004/050 | Batch 050/469 | Cost: 14012.3291\n",
      "Epoch: 004/050 | Batch 100/469 | Cost: 13688.7236\n",
      "Epoch: 004/050 | Batch 150/469 | Cost: 13726.9590\n",
      "Epoch: 004/050 | Batch 200/469 | Cost: 13938.3027\n",
      "Epoch: 004/050 | Batch 250/469 | Cost: 14040.9287\n",
      "Epoch: 004/050 | Batch 300/469 | Cost: 13934.2998\n",
      "Epoch: 004/050 | Batch 350/469 | Cost: 13701.2197\n",
      "Epoch: 004/050 | Batch 400/469 | Cost: 13695.0098\n",
      "Epoch: 004/050 | Batch 450/469 | Cost: 13170.8828\n",
      "Epoch: 005/050 | Batch 000/469 | Cost: 13500.4805\n",
      "Epoch: 005/050 | Batch 050/469 | Cost: 13655.4971\n",
      "Epoch: 005/050 | Batch 100/469 | Cost: 13458.8867\n",
      "Epoch: 005/050 | Batch 150/469 | Cost: 13754.9385\n",
      "Epoch: 005/050 | Batch 200/469 | Cost: 13421.4209\n",
      "Epoch: 005/050 | Batch 250/469 | Cost: 13213.7803\n",
      "Epoch: 005/050 | Batch 300/469 | Cost: 12693.9590\n",
      "Epoch: 005/050 | Batch 350/469 | Cost: 13030.9766\n",
      "Epoch: 005/050 | Batch 400/469 | Cost: 13811.0107\n",
      "Epoch: 005/050 | Batch 450/469 | Cost: 14092.8613\n",
      "Epoch: 006/050 | Batch 000/469 | Cost: 13308.8340\n",
      "Epoch: 006/050 | Batch 050/469 | Cost: 13082.6172\n",
      "Epoch: 006/050 | Batch 100/469 | Cost: 13904.7197\n",
      "Epoch: 006/050 | Batch 150/469 | Cost: 13171.1230\n",
      "Epoch: 006/050 | Batch 200/469 | Cost: 13504.8125\n",
      "Epoch: 006/050 | Batch 250/469 | Cost: 13535.9785\n",
      "Epoch: 006/050 | Batch 300/469 | Cost: 13284.6123\n",
      "Epoch: 006/050 | Batch 350/469 | Cost: 13442.9844\n",
      "Epoch: 006/050 | Batch 400/469 | Cost: 13444.6738\n",
      "Epoch: 006/050 | Batch 450/469 | Cost: 13511.4160\n",
      "Epoch: 007/050 | Batch 000/469 | Cost: 13908.5977\n",
      "Epoch: 007/050 | Batch 050/469 | Cost: 13451.8223\n",
      "Epoch: 007/050 | Batch 100/469 | Cost: 13165.7402\n",
      "Epoch: 007/050 | Batch 150/469 | Cost: 13328.9355\n",
      "Epoch: 007/050 | Batch 200/469 | Cost: 12998.3633\n",
      "Epoch: 007/050 | Batch 250/469 | Cost: 13683.5605\n",
      "Epoch: 007/050 | Batch 300/469 | Cost: 13152.0830\n",
      "Epoch: 007/050 | Batch 350/469 | Cost: 13329.2920\n",
      "Epoch: 007/050 | Batch 400/469 | Cost: 13330.4443\n",
      "Epoch: 007/050 | Batch 450/469 | Cost: 13523.7051\n",
      "Epoch: 008/050 | Batch 000/469 | Cost: 13326.9102\n",
      "Epoch: 008/050 | Batch 050/469 | Cost: 12950.0498\n",
      "Epoch: 008/050 | Batch 100/469 | Cost: 13583.9219\n",
      "Epoch: 008/050 | Batch 150/469 | Cost: 12776.9805\n",
      "Epoch: 008/050 | Batch 200/469 | Cost: 12999.6387\n",
      "Epoch: 008/050 | Batch 250/469 | Cost: 13324.9883\n",
      "Epoch: 008/050 | Batch 300/469 | Cost: 13418.3408\n",
      "Epoch: 008/050 | Batch 350/469 | Cost: 13043.9551\n",
      "Epoch: 008/050 | Batch 400/469 | Cost: 13222.0293\n",
      "Epoch: 008/050 | Batch 450/469 | Cost: 12615.9102\n",
      "Epoch: 009/050 | Batch 000/469 | Cost: 13419.1953\n",
      "Epoch: 009/050 | Batch 050/469 | Cost: 13427.7383\n",
      "Epoch: 009/050 | Batch 100/469 | Cost: 12853.0498\n",
      "Epoch: 009/050 | Batch 150/469 | Cost: 13082.6865\n",
      "Epoch: 009/050 | Batch 200/469 | Cost: 12926.8877\n",
      "Epoch: 009/050 | Batch 250/469 | Cost: 13223.6982\n",
      "Epoch: 009/050 | Batch 300/469 | Cost: 12966.2803\n",
      "Epoch: 009/050 | Batch 350/469 | Cost: 12672.2607\n",
      "Epoch: 009/050 | Batch 400/469 | Cost: 13285.1992\n",
      "Epoch: 009/050 | Batch 450/469 | Cost: 12638.7812\n",
      "Epoch: 010/050 | Batch 000/469 | Cost: 13139.2168\n",
      "Epoch: 010/050 | Batch 050/469 | Cost: 12674.6816\n",
      "Epoch: 010/050 | Batch 100/469 | Cost: 13080.3828\n",
      "Epoch: 010/050 | Batch 150/469 | Cost: 12448.9199\n",
      "Epoch: 010/050 | Batch 200/469 | Cost: 12761.3613\n",
      "Epoch: 010/050 | Batch 250/469 | Cost: 13139.7520\n",
      "Epoch: 010/050 | Batch 300/469 | Cost: 12969.9932\n",
      "Epoch: 010/050 | Batch 350/469 | Cost: 12518.5615\n",
      "Epoch: 010/050 | Batch 400/469 | Cost: 13042.4551\n",
      "Epoch: 010/050 | Batch 450/469 | Cost: 13296.8926\n",
      "Epoch: 011/050 | Batch 000/469 | Cost: 13233.5322\n",
      "Epoch: 011/050 | Batch 050/469 | Cost: 13085.0918\n",
      "Epoch: 011/050 | Batch 100/469 | Cost: 12664.7422\n",
      "Epoch: 011/050 | Batch 150/469 | Cost: 13344.7686\n",
      "Epoch: 011/050 | Batch 200/469 | Cost: 12498.5938\n",
      "Epoch: 011/050 | Batch 250/469 | Cost: 13314.7920\n",
      "Epoch: 011/050 | Batch 300/469 | Cost: 13175.9463\n",
      "Epoch: 011/050 | Batch 350/469 | Cost: 13034.4180\n",
      "Epoch: 011/050 | Batch 400/469 | Cost: 12425.1221\n",
      "Epoch: 011/050 | Batch 450/469 | Cost: 12548.4668\n",
      "Epoch: 012/050 | Batch 000/469 | Cost: 12779.4053\n",
      "Epoch: 012/050 | Batch 050/469 | Cost: 13129.1328\n",
      "Epoch: 012/050 | Batch 100/469 | Cost: 12274.7422\n",
      "Epoch: 012/050 | Batch 150/469 | Cost: 13289.4688\n",
      "Epoch: 012/050 | Batch 200/469 | Cost: 13256.5312\n",
      "Epoch: 012/050 | Batch 250/469 | Cost: 12437.4629\n",
      "Epoch: 012/050 | Batch 300/469 | Cost: 12500.7627\n",
      "Epoch: 012/050 | Batch 350/469 | Cost: 13362.0430\n",
      "Epoch: 012/050 | Batch 400/469 | Cost: 13271.1768\n",
      "Epoch: 012/050 | Batch 450/469 | Cost: 13070.1992\n",
      "Epoch: 013/050 | Batch 000/469 | Cost: 12979.0723\n",
      "Epoch: 013/050 | Batch 050/469 | Cost: 12714.0527\n",
      "Epoch: 013/050 | Batch 100/469 | Cost: 12925.5879\n",
      "Epoch: 013/050 | Batch 150/469 | Cost: 13068.3555\n",
      "Epoch: 013/050 | Batch 200/469 | Cost: 12462.0791\n",
      "Epoch: 013/050 | Batch 250/469 | Cost: 12443.1250\n",
      "Epoch: 013/050 | Batch 300/469 | Cost: 12773.1631\n",
      "Epoch: 013/050 | Batch 350/469 | Cost: 12435.6836\n",
      "Epoch: 013/050 | Batch 400/469 | Cost: 12659.2441\n",
      "Epoch: 013/050 | Batch 450/469 | Cost: 12680.4297\n",
      "Epoch: 014/050 | Batch 000/469 | Cost: 12963.3291\n",
      "Epoch: 014/050 | Batch 050/469 | Cost: 12406.1680\n",
      "Epoch: 014/050 | Batch 100/469 | Cost: 13342.7998\n",
      "Epoch: 014/050 | Batch 150/469 | Cost: 13050.4004\n",
      "Epoch: 014/050 | Batch 200/469 | Cost: 12695.7129\n",
      "Epoch: 014/050 | Batch 250/469 | Cost: 12899.9678\n",
      "Epoch: 014/050 | Batch 300/469 | Cost: 12568.9746\n",
      "Epoch: 014/050 | Batch 350/469 | Cost: 12800.3164\n",
      "Epoch: 014/050 | Batch 400/469 | Cost: 12908.6758\n",
      "Epoch: 014/050 | Batch 450/469 | Cost: 13055.2197\n",
      "Epoch: 015/050 | Batch 000/469 | Cost: 12697.0527\n",
      "Epoch: 015/050 | Batch 050/469 | Cost: 13206.3340\n",
      "Epoch: 015/050 | Batch 100/469 | Cost: 12505.6865\n",
      "Epoch: 015/050 | Batch 150/469 | Cost: 12765.6504\n",
      "Epoch: 015/050 | Batch 200/469 | Cost: 12692.5625\n",
      "Epoch: 015/050 | Batch 250/469 | Cost: 12564.1904\n",
      "Epoch: 015/050 | Batch 300/469 | Cost: 12480.1055\n",
      "Epoch: 015/050 | Batch 350/469 | Cost: 12703.9590\n",
      "Epoch: 015/050 | Batch 400/469 | Cost: 12782.6943\n",
      "Epoch: 015/050 | Batch 450/469 | Cost: 12501.6982\n",
      "Epoch: 016/050 | Batch 000/469 | Cost: 12316.8369\n",
      "Epoch: 016/050 | Batch 050/469 | Cost: 12879.1367\n",
      "Epoch: 016/050 | Batch 100/469 | Cost: 12799.4814\n",
      "Epoch: 016/050 | Batch 150/469 | Cost: 13116.8818\n",
      "Epoch: 016/050 | Batch 200/469 | Cost: 12788.3652\n",
      "Epoch: 016/050 | Batch 250/469 | Cost: 12618.8379\n",
      "Epoch: 016/050 | Batch 300/469 | Cost: 13378.3730\n",
      "Epoch: 016/050 | Batch 350/469 | Cost: 12751.9121\n",
      "Epoch: 016/050 | Batch 400/469 | Cost: 12654.6123\n",
      "Epoch: 016/050 | Batch 450/469 | Cost: 12693.1211\n",
      "Epoch: 017/050 | Batch 000/469 | Cost: 13261.9746\n",
      "Epoch: 017/050 | Batch 050/469 | Cost: 13040.6025\n",
      "Epoch: 017/050 | Batch 100/469 | Cost: 12892.2832\n",
      "Epoch: 017/050 | Batch 150/469 | Cost: 12776.0957\n",
      "Epoch: 017/050 | Batch 200/469 | Cost: 12676.0645\n",
      "Epoch: 017/050 | Batch 250/469 | Cost: 13100.1250\n",
      "Epoch: 017/050 | Batch 300/469 | Cost: 12229.5742\n",
      "Epoch: 017/050 | Batch 350/469 | Cost: 12896.2207\n",
      "Epoch: 017/050 | Batch 400/469 | Cost: 12986.7246\n",
      "Epoch: 017/050 | Batch 450/469 | Cost: 12528.6777\n",
      "Epoch: 018/050 | Batch 000/469 | Cost: 12395.8604\n",
      "Epoch: 018/050 | Batch 050/469 | Cost: 12674.4678\n",
      "Epoch: 018/050 | Batch 100/469 | Cost: 12528.5469\n",
      "Epoch: 018/050 | Batch 150/469 | Cost: 13454.7070\n",
      "Epoch: 018/050 | Batch 200/469 | Cost: 12878.5322\n",
      "Epoch: 018/050 | Batch 250/469 | Cost: 12682.8457\n",
      "Epoch: 018/050 | Batch 300/469 | Cost: 12604.6943\n",
      "Epoch: 018/050 | Batch 350/469 | Cost: 13185.8828\n",
      "Epoch: 018/050 | Batch 400/469 | Cost: 12933.7246\n",
      "Epoch: 018/050 | Batch 450/469 | Cost: 12973.7314\n",
      "Epoch: 019/050 | Batch 000/469 | Cost: 12347.1924\n",
      "Epoch: 019/050 | Batch 050/469 | Cost: 12655.2314\n",
      "Epoch: 019/050 | Batch 100/469 | Cost: 12840.0889\n",
      "Epoch: 019/050 | Batch 150/469 | Cost: 12790.1152\n",
      "Epoch: 019/050 | Batch 200/469 | Cost: 12546.3301\n",
      "Epoch: 019/050 | Batch 250/469 | Cost: 12630.3662\n",
      "Epoch: 019/050 | Batch 300/469 | Cost: 12877.1553\n",
      "Epoch: 019/050 | Batch 350/469 | Cost: 12754.5049\n",
      "Epoch: 019/050 | Batch 400/469 | Cost: 12562.9287\n",
      "Epoch: 019/050 | Batch 450/469 | Cost: 12670.7939\n",
      "Epoch: 020/050 | Batch 000/469 | Cost: 13078.5391\n",
      "Epoch: 020/050 | Batch 050/469 | Cost: 13251.5137\n",
      "Epoch: 020/050 | Batch 100/469 | Cost: 12222.6816\n",
      "Epoch: 020/050 | Batch 150/469 | Cost: 13020.2549\n",
      "Epoch: 020/050 | Batch 200/469 | Cost: 12660.7695\n",
      "Epoch: 020/050 | Batch 250/469 | Cost: 12797.1309\n",
      "Epoch: 020/050 | Batch 300/469 | Cost: 12559.7441\n",
      "Epoch: 020/050 | Batch 350/469 | Cost: 12983.9473\n",
      "Epoch: 020/050 | Batch 400/469 | Cost: 12665.8516\n",
      "Epoch: 020/050 | Batch 450/469 | Cost: 12557.4512\n",
      "Epoch: 021/050 | Batch 000/469 | Cost: 12259.2539\n",
      "Epoch: 021/050 | Batch 050/469 | Cost: 12225.6787\n",
      "Epoch: 021/050 | Batch 100/469 | Cost: 13265.6328\n",
      "Epoch: 021/050 | Batch 150/469 | Cost: 12958.9795\n",
      "Epoch: 021/050 | Batch 200/469 | Cost: 13201.1504\n",
      "Epoch: 021/050 | Batch 250/469 | Cost: 12173.3027\n",
      "Epoch: 021/050 | Batch 300/469 | Cost: 11880.8125\n",
      "Epoch: 021/050 | Batch 350/469 | Cost: 12684.7500\n",
      "Epoch: 021/050 | Batch 400/469 | Cost: 12973.6250\n",
      "Epoch: 021/050 | Batch 450/469 | Cost: 12326.9854\n",
      "Epoch: 022/050 | Batch 000/469 | Cost: 12506.0596\n",
      "Epoch: 022/050 | Batch 050/469 | Cost: 12992.8047\n",
      "Epoch: 022/050 | Batch 100/469 | Cost: 12908.5557\n",
      "Epoch: 022/050 | Batch 150/469 | Cost: 12658.6768\n",
      "Epoch: 022/050 | Batch 200/469 | Cost: 13097.6426\n",
      "Epoch: 022/050 | Batch 250/469 | Cost: 12514.5166\n",
      "Epoch: 022/050 | Batch 300/469 | Cost: 13067.9795\n",
      "Epoch: 022/050 | Batch 350/469 | Cost: 13335.4814\n",
      "Epoch: 022/050 | Batch 400/469 | Cost: 12482.6094\n",
      "Epoch: 022/050 | Batch 450/469 | Cost: 12887.1328\n",
      "Epoch: 023/050 | Batch 000/469 | Cost: 12895.0732\n",
      "Epoch: 023/050 | Batch 050/469 | Cost: 12596.9219\n",
      "Epoch: 023/050 | Batch 100/469 | Cost: 12961.1699\n",
      "Epoch: 023/050 | Batch 150/469 | Cost: 12497.6240\n",
      "Epoch: 023/050 | Batch 200/469 | Cost: 12390.3174\n",
      "Epoch: 023/050 | Batch 250/469 | Cost: 12916.2070\n",
      "Epoch: 023/050 | Batch 300/469 | Cost: 12608.6494\n",
      "Epoch: 023/050 | Batch 350/469 | Cost: 12270.3037\n",
      "Epoch: 023/050 | Batch 400/469 | Cost: 12774.8906\n",
      "Epoch: 023/050 | Batch 450/469 | Cost: 12438.0068\n",
      "Epoch: 024/050 | Batch 000/469 | Cost: 12060.3467\n",
      "Epoch: 024/050 | Batch 050/469 | Cost: 12482.3770\n",
      "Epoch: 024/050 | Batch 100/469 | Cost: 12389.7715\n",
      "Epoch: 024/050 | Batch 150/469 | Cost: 13020.0859\n",
      "Epoch: 024/050 | Batch 200/469 | Cost: 12233.1670\n",
      "Epoch: 024/050 | Batch 250/469 | Cost: 12507.4473\n",
      "Epoch: 024/050 | Batch 300/469 | Cost: 12403.1035\n",
      "Epoch: 024/050 | Batch 350/469 | Cost: 12475.9551\n",
      "Epoch: 024/050 | Batch 400/469 | Cost: 12369.6104\n",
      "Epoch: 024/050 | Batch 450/469 | Cost: 12104.8066\n",
      "Epoch: 025/050 | Batch 000/469 | Cost: 12380.4355\n",
      "Epoch: 025/050 | Batch 050/469 | Cost: 12826.3662\n",
      "Epoch: 025/050 | Batch 100/469 | Cost: 12431.5898\n",
      "Epoch: 025/050 | Batch 150/469 | Cost: 12982.6113\n",
      "Epoch: 025/050 | Batch 200/469 | Cost: 12823.1465\n",
      "Epoch: 025/050 | Batch 250/469 | Cost: 12800.5156\n",
      "Epoch: 025/050 | Batch 300/469 | Cost: 13140.7812\n",
      "Epoch: 025/050 | Batch 350/469 | Cost: 12483.5723\n",
      "Epoch: 025/050 | Batch 400/469 | Cost: 12694.3594\n",
      "Epoch: 025/050 | Batch 450/469 | Cost: 12767.1543\n",
      "Epoch: 026/050 | Batch 000/469 | Cost: 11855.4678\n",
      "Epoch: 026/050 | Batch 050/469 | Cost: 12363.9590\n",
      "Epoch: 026/050 | Batch 100/469 | Cost: 13079.2793\n",
      "Epoch: 026/050 | Batch 150/469 | Cost: 12977.3594\n",
      "Epoch: 026/050 | Batch 200/469 | Cost: 12642.0938\n",
      "Epoch: 026/050 | Batch 250/469 | Cost: 12530.8447\n",
      "Epoch: 026/050 | Batch 300/469 | Cost: 12514.3311\n",
      "Epoch: 026/050 | Batch 350/469 | Cost: 12100.2314\n",
      "Epoch: 026/050 | Batch 400/469 | Cost: 12814.0479\n",
      "Epoch: 026/050 | Batch 450/469 | Cost: 12364.0166\n",
      "Epoch: 027/050 | Batch 000/469 | Cost: 12499.8721\n",
      "Epoch: 027/050 | Batch 050/469 | Cost: 12678.9111\n",
      "Epoch: 027/050 | Batch 100/469 | Cost: 12261.5918\n",
      "Epoch: 027/050 | Batch 150/469 | Cost: 12901.1641\n",
      "Epoch: 027/050 | Batch 200/469 | Cost: 12548.0469\n",
      "Epoch: 027/050 | Batch 250/469 | Cost: 12211.9111\n",
      "Epoch: 027/050 | Batch 300/469 | Cost: 13003.7646\n",
      "Epoch: 027/050 | Batch 350/469 | Cost: 12214.5781\n",
      "Epoch: 027/050 | Batch 400/469 | Cost: 12604.0361\n",
      "Epoch: 027/050 | Batch 450/469 | Cost: 12504.3213\n",
      "Epoch: 028/050 | Batch 000/469 | Cost: 12680.8613\n",
      "Epoch: 028/050 | Batch 050/469 | Cost: 13018.3525\n",
      "Epoch: 028/050 | Batch 100/469 | Cost: 13040.8760\n",
      "Epoch: 028/050 | Batch 150/469 | Cost: 12745.8643\n",
      "Epoch: 028/050 | Batch 200/469 | Cost: 12417.4248\n",
      "Epoch: 028/050 | Batch 250/469 | Cost: 12684.0645\n",
      "Epoch: 028/050 | Batch 300/469 | Cost: 12119.3633\n",
      "Epoch: 028/050 | Batch 350/469 | Cost: 12281.8008\n",
      "Epoch: 028/050 | Batch 400/469 | Cost: 12434.8438\n",
      "Epoch: 028/050 | Batch 450/469 | Cost: 12379.5928\n",
      "Epoch: 029/050 | Batch 000/469 | Cost: 12527.9355\n",
      "Epoch: 029/050 | Batch 050/469 | Cost: 12694.2578\n",
      "Epoch: 029/050 | Batch 100/469 | Cost: 12318.5742\n",
      "Epoch: 029/050 | Batch 150/469 | Cost: 12357.7070\n",
      "Epoch: 029/050 | Batch 200/469 | Cost: 12823.2246\n",
      "Epoch: 029/050 | Batch 250/469 | Cost: 12532.8555\n",
      "Epoch: 029/050 | Batch 300/469 | Cost: 12343.1777\n",
      "Epoch: 029/050 | Batch 350/469 | Cost: 12207.8662\n",
      "Epoch: 029/050 | Batch 400/469 | Cost: 12553.4434\n",
      "Epoch: 029/050 | Batch 450/469 | Cost: 12426.8096\n",
      "Epoch: 030/050 | Batch 000/469 | Cost: 12391.7988\n",
      "Epoch: 030/050 | Batch 050/469 | Cost: 12414.6650\n",
      "Epoch: 030/050 | Batch 100/469 | Cost: 12213.8281\n",
      "Epoch: 030/050 | Batch 150/469 | Cost: 12527.5752\n",
      "Epoch: 030/050 | Batch 200/469 | Cost: 12135.3281\n",
      "Epoch: 030/050 | Batch 250/469 | Cost: 12099.4062\n",
      "Epoch: 030/050 | Batch 300/469 | Cost: 12891.4102\n",
      "Epoch: 030/050 | Batch 350/469 | Cost: 12546.6768\n",
      "Epoch: 030/050 | Batch 400/469 | Cost: 12653.6172\n",
      "Epoch: 030/050 | Batch 450/469 | Cost: 12576.2285\n",
      "Epoch: 031/050 | Batch 000/469 | Cost: 12499.4316\n",
      "Epoch: 031/050 | Batch 050/469 | Cost: 12517.8770\n",
      "Epoch: 031/050 | Batch 100/469 | Cost: 12340.2480\n",
      "Epoch: 031/050 | Batch 150/469 | Cost: 12368.0469\n",
      "Epoch: 031/050 | Batch 200/469 | Cost: 12331.4121\n",
      "Epoch: 031/050 | Batch 250/469 | Cost: 12736.1953\n",
      "Epoch: 031/050 | Batch 300/469 | Cost: 12985.6914\n",
      "Epoch: 031/050 | Batch 350/469 | Cost: 12383.8086\n",
      "Epoch: 031/050 | Batch 400/469 | Cost: 12270.4277\n",
      "Epoch: 031/050 | Batch 450/469 | Cost: 12418.8633\n",
      "Epoch: 032/050 | Batch 000/469 | Cost: 12244.7559\n",
      "Epoch: 032/050 | Batch 050/469 | Cost: 12531.9453\n",
      "Epoch: 032/050 | Batch 100/469 | Cost: 12477.5752\n",
      "Epoch: 032/050 | Batch 150/469 | Cost: 12838.6650\n",
      "Epoch: 032/050 | Batch 200/469 | Cost: 12590.4707\n",
      "Epoch: 032/050 | Batch 250/469 | Cost: 12658.5674\n",
      "Epoch: 032/050 | Batch 300/469 | Cost: 12619.9316\n",
      "Epoch: 032/050 | Batch 350/469 | Cost: 12790.5488\n",
      "Epoch: 032/050 | Batch 400/469 | Cost: 12336.5918\n",
      "Epoch: 032/050 | Batch 450/469 | Cost: 11956.5361\n",
      "Epoch: 033/050 | Batch 000/469 | Cost: 12257.5645\n",
      "Epoch: 033/050 | Batch 050/469 | Cost: 12238.9277\n",
      "Epoch: 033/050 | Batch 100/469 | Cost: 12166.1533\n",
      "Epoch: 033/050 | Batch 150/469 | Cost: 12442.1953\n",
      "Epoch: 033/050 | Batch 200/469 | Cost: 12383.0957\n",
      "Epoch: 033/050 | Batch 250/469 | Cost: 12242.8730\n",
      "Epoch: 033/050 | Batch 300/469 | Cost: 12493.3262\n",
      "Epoch: 033/050 | Batch 350/469 | Cost: 12194.9941\n",
      "Epoch: 033/050 | Batch 400/469 | Cost: 12441.2207\n",
      "Epoch: 033/050 | Batch 450/469 | Cost: 12835.3838\n",
      "Epoch: 034/050 | Batch 000/469 | Cost: 12413.8838\n",
      "Epoch: 034/050 | Batch 050/469 | Cost: 12801.7031\n",
      "Epoch: 034/050 | Batch 100/469 | Cost: 12464.5234\n",
      "Epoch: 034/050 | Batch 150/469 | Cost: 12432.2822\n",
      "Epoch: 034/050 | Batch 200/469 | Cost: 12561.4375\n",
      "Epoch: 034/050 | Batch 250/469 | Cost: 12854.5889\n",
      "Epoch: 034/050 | Batch 300/469 | Cost: 12125.7393\n",
      "Epoch: 034/050 | Batch 350/469 | Cost: 12752.3701\n",
      "Epoch: 034/050 | Batch 400/469 | Cost: 12496.3652\n",
      "Epoch: 034/050 | Batch 450/469 | Cost: 12751.6465\n",
      "Epoch: 035/050 | Batch 000/469 | Cost: 12277.0820\n",
      "Epoch: 035/050 | Batch 050/469 | Cost: 12367.7256\n",
      "Epoch: 035/050 | Batch 100/469 | Cost: 12402.5156\n",
      "Epoch: 035/050 | Batch 150/469 | Cost: 12334.3750\n",
      "Epoch: 035/050 | Batch 200/469 | Cost: 12532.5967\n",
      "Epoch: 035/050 | Batch 250/469 | Cost: 12294.9727\n",
      "Epoch: 035/050 | Batch 300/469 | Cost: 12221.8359\n",
      "Epoch: 035/050 | Batch 350/469 | Cost: 12979.2939\n",
      "Epoch: 035/050 | Batch 400/469 | Cost: 12789.4639\n",
      "Epoch: 035/050 | Batch 450/469 | Cost: 12396.4160\n",
      "Epoch: 036/050 | Batch 000/469 | Cost: 12536.0049\n",
      "Epoch: 036/050 | Batch 050/469 | Cost: 12159.3613\n",
      "Epoch: 036/050 | Batch 100/469 | Cost: 12361.6260\n",
      "Epoch: 036/050 | Batch 150/469 | Cost: 12638.1709\n",
      "Epoch: 036/050 | Batch 200/469 | Cost: 12634.9355\n",
      "Epoch: 036/050 | Batch 250/469 | Cost: 12643.7432\n",
      "Epoch: 036/050 | Batch 300/469 | Cost: 12563.5137\n",
      "Epoch: 036/050 | Batch 350/469 | Cost: 12375.0566\n",
      "Epoch: 036/050 | Batch 400/469 | Cost: 12551.1367\n",
      "Epoch: 036/050 | Batch 450/469 | Cost: 12317.5762\n",
      "Epoch: 037/050 | Batch 000/469 | Cost: 12063.4453\n",
      "Epoch: 037/050 | Batch 050/469 | Cost: 11987.3984\n",
      "Epoch: 037/050 | Batch 100/469 | Cost: 12577.7441\n",
      "Epoch: 037/050 | Batch 150/469 | Cost: 12403.6309\n",
      "Epoch: 037/050 | Batch 200/469 | Cost: 12922.1729\n",
      "Epoch: 037/050 | Batch 250/469 | Cost: 12302.4805\n",
      "Epoch: 037/050 | Batch 300/469 | Cost: 12353.8057\n",
      "Epoch: 037/050 | Batch 350/469 | Cost: 12627.0859\n",
      "Epoch: 037/050 | Batch 400/469 | Cost: 12517.3809\n",
      "Epoch: 037/050 | Batch 450/469 | Cost: 11899.2090\n",
      "Epoch: 038/050 | Batch 000/469 | Cost: 11766.3467\n",
      "Epoch: 038/050 | Batch 050/469 | Cost: 12509.6875\n",
      "Epoch: 038/050 | Batch 100/469 | Cost: 12706.8721\n",
      "Epoch: 038/050 | Batch 150/469 | Cost: 12288.3730\n",
      "Epoch: 038/050 | Batch 200/469 | Cost: 12531.9883\n",
      "Epoch: 038/050 | Batch 250/469 | Cost: 12904.4297\n",
      "Epoch: 038/050 | Batch 300/469 | Cost: 12279.0957\n",
      "Epoch: 038/050 | Batch 350/469 | Cost: 13053.5732\n",
      "Epoch: 038/050 | Batch 400/469 | Cost: 12317.9678\n",
      "Epoch: 038/050 | Batch 450/469 | Cost: 12069.1924\n",
      "Epoch: 039/050 | Batch 000/469 | Cost: 12420.7734\n",
      "Epoch: 039/050 | Batch 050/469 | Cost: 12101.2764\n",
      "Epoch: 039/050 | Batch 100/469 | Cost: 12663.4492\n",
      "Epoch: 039/050 | Batch 150/469 | Cost: 12434.3320\n",
      "Epoch: 039/050 | Batch 200/469 | Cost: 12394.2676\n",
      "Epoch: 039/050 | Batch 250/469 | Cost: 12588.5234\n",
      "Epoch: 039/050 | Batch 300/469 | Cost: 12016.5742\n",
      "Epoch: 039/050 | Batch 350/469 | Cost: 11895.7480\n",
      "Epoch: 039/050 | Batch 400/469 | Cost: 12270.1885\n",
      "Epoch: 039/050 | Batch 450/469 | Cost: 12623.2764\n",
      "Epoch: 040/050 | Batch 000/469 | Cost: 12347.0195\n",
      "Epoch: 040/050 | Batch 050/469 | Cost: 12172.0439\n",
      "Epoch: 040/050 | Batch 100/469 | Cost: 12112.8770\n",
      "Epoch: 040/050 | Batch 150/469 | Cost: 12661.4824\n",
      "Epoch: 040/050 | Batch 200/469 | Cost: 12516.9434\n",
      "Epoch: 040/050 | Batch 250/469 | Cost: 11665.0059\n",
      "Epoch: 040/050 | Batch 300/469 | Cost: 12424.7168\n",
      "Epoch: 040/050 | Batch 350/469 | Cost: 12546.3516\n",
      "Epoch: 040/050 | Batch 400/469 | Cost: 12085.0430\n",
      "Epoch: 040/050 | Batch 450/469 | Cost: 12052.1777\n",
      "Epoch: 041/050 | Batch 000/469 | Cost: 12553.8594\n",
      "Epoch: 041/050 | Batch 050/469 | Cost: 12719.8916\n",
      "Epoch: 041/050 | Batch 100/469 | Cost: 12318.2598\n",
      "Epoch: 041/050 | Batch 150/469 | Cost: 12868.4424\n",
      "Epoch: 041/050 | Batch 200/469 | Cost: 12110.4648\n",
      "Epoch: 041/050 | Batch 250/469 | Cost: 12877.4014\n",
      "Epoch: 041/050 | Batch 300/469 | Cost: 12044.2422\n",
      "Epoch: 041/050 | Batch 350/469 | Cost: 12094.7090\n",
      "Epoch: 041/050 | Batch 400/469 | Cost: 12124.3301\n",
      "Epoch: 041/050 | Batch 450/469 | Cost: 12671.7217\n",
      "Epoch: 042/050 | Batch 000/469 | Cost: 12054.0957\n",
      "Epoch: 042/050 | Batch 050/469 | Cost: 12345.2227\n",
      "Epoch: 042/050 | Batch 100/469 | Cost: 12810.0957\n",
      "Epoch: 042/050 | Batch 150/469 | Cost: 11998.7207\n",
      "Epoch: 042/050 | Batch 200/469 | Cost: 12693.5879\n",
      "Epoch: 042/050 | Batch 250/469 | Cost: 11996.5615\n",
      "Epoch: 042/050 | Batch 300/469 | Cost: 12084.2832\n",
      "Epoch: 042/050 | Batch 350/469 | Cost: 12159.6025\n",
      "Epoch: 042/050 | Batch 400/469 | Cost: 12514.6943\n",
      "Epoch: 042/050 | Batch 450/469 | Cost: 12273.8809\n",
      "Epoch: 043/050 | Batch 000/469 | Cost: 12472.9395\n",
      "Epoch: 043/050 | Batch 050/469 | Cost: 12462.2734\n",
      "Epoch: 043/050 | Batch 100/469 | Cost: 12303.0898\n",
      "Epoch: 043/050 | Batch 150/469 | Cost: 12641.2676\n",
      "Epoch: 043/050 | Batch 200/469 | Cost: 11870.0820\n",
      "Epoch: 043/050 | Batch 250/469 | Cost: 12087.6504\n",
      "Epoch: 043/050 | Batch 300/469 | Cost: 12615.6992\n",
      "Epoch: 043/050 | Batch 350/469 | Cost: 12327.5391\n",
      "Epoch: 043/050 | Batch 400/469 | Cost: 12761.4795\n",
      "Epoch: 043/050 | Batch 450/469 | Cost: 12429.0576\n",
      "Epoch: 044/050 | Batch 000/469 | Cost: 12172.6055\n",
      "Epoch: 044/050 | Batch 050/469 | Cost: 12338.0742\n",
      "Epoch: 044/050 | Batch 100/469 | Cost: 12473.4297\n",
      "Epoch: 044/050 | Batch 150/469 | Cost: 12260.2695\n",
      "Epoch: 044/050 | Batch 200/469 | Cost: 12475.7871\n",
      "Epoch: 044/050 | Batch 250/469 | Cost: 12570.5645\n",
      "Epoch: 044/050 | Batch 300/469 | Cost: 12297.6982\n",
      "Epoch: 044/050 | Batch 350/469 | Cost: 12525.9111\n",
      "Epoch: 044/050 | Batch 400/469 | Cost: 12596.0791\n",
      "Epoch: 044/050 | Batch 450/469 | Cost: 11957.3623\n",
      "Epoch: 045/050 | Batch 000/469 | Cost: 12849.4238\n",
      "Epoch: 045/050 | Batch 050/469 | Cost: 12080.3203\n",
      "Epoch: 045/050 | Batch 100/469 | Cost: 12260.8994\n",
      "Epoch: 045/050 | Batch 150/469 | Cost: 12638.3770\n",
      "Epoch: 045/050 | Batch 200/469 | Cost: 12635.9248\n",
      "Epoch: 045/050 | Batch 250/469 | Cost: 12265.3184\n",
      "Epoch: 045/050 | Batch 300/469 | Cost: 12359.3242\n",
      "Epoch: 045/050 | Batch 350/469 | Cost: 12409.3135\n",
      "Epoch: 045/050 | Batch 400/469 | Cost: 12485.5879\n",
      "Epoch: 045/050 | Batch 450/469 | Cost: 12399.2988\n",
      "Epoch: 046/050 | Batch 000/469 | Cost: 12027.0762\n",
      "Epoch: 046/050 | Batch 050/469 | Cost: 12070.3789\n",
      "Epoch: 046/050 | Batch 100/469 | Cost: 12531.2441\n",
      "Epoch: 046/050 | Batch 150/469 | Cost: 12265.9395\n",
      "Epoch: 046/050 | Batch 200/469 | Cost: 12452.6680\n",
      "Epoch: 046/050 | Batch 250/469 | Cost: 13118.8711\n",
      "Epoch: 046/050 | Batch 300/469 | Cost: 12208.3818\n",
      "Epoch: 046/050 | Batch 350/469 | Cost: 12624.9814\n",
      "Epoch: 046/050 | Batch 400/469 | Cost: 12488.5791\n",
      "Epoch: 046/050 | Batch 450/469 | Cost: 12633.9775\n",
      "Epoch: 047/050 | Batch 000/469 | Cost: 12152.1914\n",
      "Epoch: 047/050 | Batch 050/469 | Cost: 12525.3857\n",
      "Epoch: 047/050 | Batch 100/469 | Cost: 12195.7227\n",
      "Epoch: 047/050 | Batch 150/469 | Cost: 12642.2949\n",
      "Epoch: 047/050 | Batch 200/469 | Cost: 12667.8174\n",
      "Epoch: 047/050 | Batch 250/469 | Cost: 12729.5176\n",
      "Epoch: 047/050 | Batch 300/469 | Cost: 12052.5898\n",
      "Epoch: 047/050 | Batch 350/469 | Cost: 12097.2480\n",
      "Epoch: 047/050 | Batch 400/469 | Cost: 12530.8574\n",
      "Epoch: 047/050 | Batch 450/469 | Cost: 12496.5098\n",
      "Epoch: 048/050 | Batch 000/469 | Cost: 12613.0137\n",
      "Epoch: 048/050 | Batch 050/469 | Cost: 12692.5273\n",
      "Epoch: 048/050 | Batch 100/469 | Cost: 12363.4863\n",
      "Epoch: 048/050 | Batch 150/469 | Cost: 11625.2861\n",
      "Epoch: 048/050 | Batch 200/469 | Cost: 12005.9697\n",
      "Epoch: 048/050 | Batch 250/469 | Cost: 12227.3750\n",
      "Epoch: 048/050 | Batch 300/469 | Cost: 12684.3359\n",
      "Epoch: 048/050 | Batch 350/469 | Cost: 12430.2783\n",
      "Epoch: 048/050 | Batch 400/469 | Cost: 12213.2578\n",
      "Epoch: 048/050 | Batch 450/469 | Cost: 13208.1133\n",
      "Epoch: 049/050 | Batch 000/469 | Cost: 12118.3057\n",
      "Epoch: 049/050 | Batch 050/469 | Cost: 12340.2715\n",
      "Epoch: 049/050 | Batch 100/469 | Cost: 12029.6094\n",
      "Epoch: 049/050 | Batch 150/469 | Cost: 12366.4453\n",
      "Epoch: 049/050 | Batch 200/469 | Cost: 12537.2998\n",
      "Epoch: 049/050 | Batch 250/469 | Cost: 12324.0312\n",
      "Epoch: 049/050 | Batch 300/469 | Cost: 12378.3457\n",
      "Epoch: 049/050 | Batch 350/469 | Cost: 12218.6914\n",
      "Epoch: 049/050 | Batch 400/469 | Cost: 12550.4785\n",
      "Epoch: 049/050 | Batch 450/469 | Cost: 12444.4463\n",
      "Epoch: 050/050 | Batch 000/469 | Cost: 12246.0020\n",
      "Epoch: 050/050 | Batch 050/469 | Cost: 12554.1836\n",
      "Epoch: 050/050 | Batch 100/469 | Cost: 12373.2930\n",
      "Epoch: 050/050 | Batch 150/469 | Cost: 12895.8096\n",
      "Epoch: 050/050 | Batch 200/469 | Cost: 12233.0605\n",
      "Epoch: 050/050 | Batch 250/469 | Cost: 12621.2920\n",
      "Epoch: 050/050 | Batch 300/469 | Cost: 12492.7812\n",
      "Epoch: 050/050 | Batch 350/469 | Cost: 12525.1934\n",
      "Epoch: 050/050 | Batch 400/469 | Cost: 13032.4062\n",
      "Epoch: 050/050 | Batch 450/469 | Cost: 12618.7773\n"
     ]
    }
   ],
   "source": [
    "start_time = time.time()\n",
    "for epoch in range(num_epochs):\n",
    "    for batch_idx, (features, targets) in enumerate(train_loader):\n",
    "        \n",
    "        features = features.view(-1, 28*28).to(device)\n",
    "        targets = targets.to(device)\n",
    "\n",
    "        ### FORWARD AND BACK PROP\n",
    "        z_mean, z_log_var, encoded, decoded = model(features, targets)\n",
    "\n",
    "        # cost = reconstruction loss + Kullback-Leibler divergence\n",
    "        kl_divergence = (0.5 * (z_mean**2 + \n",
    "                                torch.exp(z_log_var) - z_log_var - 1)).sum()\n",
    "        \n",
    "        ### Add condition\n",
    "        # Disabled for reconstruction loss as it gives poor results\n",
    "        # x_con = torch.cat((features, to_onehot(targets, num_classes, device)), dim=1)\n",
    "        \n",
    "        ### Compute loss\n",
    "        # pixelwise_bce = F.binary_cross_entropy(decoded, x_con, reduction='sum')\n",
    "        pixelwise_bce = F.binary_cross_entropy(decoded, features, reduction='sum')\n",
    "        cost = kl_divergence + pixelwise_bce\n",
    "        \n",
    "        ### UPDATE MODEL PARAMETERS\n",
    "        optimizer.zero_grad()\n",
    "        cost.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        ### LOGGING\n",
    "        if not batch_idx % 50:\n",
    "            print ('Epoch: %03d/%03d | Batch %03d/%03d | Cost: %.4f' \n",
    "                   %(epoch+1, num_epochs, batch_idx, \n",
    "                     len(train_loader), cost))\n",
    "            \n",
    "    print('Time elapsed: %.2f min' % ((time.time() - start_time)/60))\n",
    "    \n",
    "print('Total Training Time: %.2f min' % ((time.time() - start_time)/60))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reconstruction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIAAAACqCAYAAADV0DQZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXecVNX5xr83xhZLbKhIEXvv2HtDRGOLoGLhl2CNxlijsbcoGo0llkgSI3ZUsGM0Yq8Bu4LEEguKBXsssd3fH/Dcc2Z2drmzu1P3+X4+fHa4c3fmzLvnnnvmvM953iRNU4wxxhhjjDHGGGNM8/KjWjfAGGOMMcYYY4wxxlQWLwAZY4wxxhhjjDHGNDleADLGGGOMMcYYY4xpcrwAZIwxxhhjjDHGGNPkeAHIGGOMMcYYY4wxpsnxApAxxhhjjDHGGGNMk+MFIGOMMcYYY4wxxpgmp0MLQEmS9E+SZFKSJK8kSXJ0ZzXKGGOMMcYYY4wxxnQeSZqm7fvFJJkJ+DewJTAZGAfslqbphM5rnjHGGGOMMcYYY4zpKD/uwO+uBbySpulrAEmSXAdsD7S6ALTAAgukffr06cBbNiZPPvnk1DRNu5XzO45Vfhyr8uiK8Xr99deZOnVqUu7vdcVYga/DcnCs8uNY5cfje348vpeHr8P8OFb58ZiVH49Z5eHrMD95Y9WRBaAewFvR/ycDaxeflCTJvsC+AL1792b8+PEdeMvGJEmSN3Ke51g5VrnJG6vp53bpePXt2zf3uV09VuDrsBwcq/w4Vvnx+J4fj+/l4eswP45Vfjxm5cdjVnn4OsxP3lh1xAOo1Mpli/1kaZoOT9O0b5qmfbt1K3thuEvhWOXHsSoPxys/jlV+HKv8OFb5cazKw/HKj2OVH8cqP45VeThe+XGs8uNY5acjC0CTgV7R/3sC73SsOcYYY4wxxhhjjDGms+nIAtA4YKkkSRZLkmQWYFfg1s5pljHGGGOMMcYYY4zpLNrtAZSm6XdJkhwE3AXMBFyWpumLndYyY4wxxhhjjDHGGNMpdMQEmjRNxwBjOqktxhhjjDHGGGOMMaYCdGgByBhjjDHGGJOfCRMmAHDuuecCkCShrsqhhx4KwHLLLVf9hhljjGl6OuIBZIwxxhhjjDHGGGMaACuAjDGmwjz11FMAXHbZZQBcfPHFAOywww7ZOVtuuWXB72y44YYArLjiitVoojHGmArzwgsvANC/f38A3n77bQDmm2++7JyhQ4dWv2HGGGO6DFYAGWOMMcYYY4wxxjQ5VgAZYyrOV199BcBbb70FwOOPPw7A+PHjW5z7yCOPAEE1s/vuuwNw/vnnZ+fMP//8lWtsBbj77rsBuOSSS4Dg93DLLbdk58SPAXr06AHAvPPOC8CZZ56ZPafssZnG5ZdfDsCzzz4LwHnnndfinC222AKAI488EoB+/fpVp3HGmC7PSy+9BIRxZ8qUKQXP9+7dO3u89tprV69hTc7nn3+ePX711VcBmGOOOQBYaqmlatIm01h88cUXAKy66qoAvPLKKwCccsop2TnHH3989RtmTAewAsgYY4wxxhhjjDGmybECqMn5+OOPATjmmGOAsJK90047ZeesvPLKQGGmJGb22WfPHi+99NIVaadpHt55553s8WOPPQbA2WefDcATTzyR+3WkkrnmmmuAQtVPrAZqBGaddVYAZpppJgC+//77Gf6OvCEmT54MwO9///vsuc022wyAWWaZpVPbWc9IEQawzTbbACGOn3zyCQDfffcdUFhRR4wdOxYICrOJEycCsOiii1aoxcY0DxrLVbUKgpJTasVevXoBsM466wAwcODA7Fw915XQeARw1llnAS2VP8LjUOfy9ddfA4X3Talo55prLgCOO+44AH77299WuXWVR4pizTkAllxySQCWXXbZmrSpEZBKHcL4dv311wPw2muvAWF+ceutt2bnHnHEEUDh9yXTnHz55ZcA/POf/8yO3XHHHQD89a9/Lfk7G220UfZ49dVXB+A3v/kNULux3wogY4wxxhhjjDHGmCbHCqAm56KLLgJg+PDhAKRpChSuXEtF8OGHHxb8rs6de+65s2PK7C2//PIA7L///kBzKYOkDJBqRYoBgEmTJuV+nXnmmQcIe/8XWmihzmpiXaFMm/ZD/+1vf8ue++CDDwrOVTYqzkqJXXfdFQhKH/VR7du/7bbbsnMbTQF06KGHAvDtt98CQdWj6xNCta9PP/0UKMxEATz66KPZY113qirWzJx00klAqJwGMHXq1Ha/nvrr888/DzRn5v3222/PHl955ZVAyGKKbt26ASFzCeFeIMXaAQccUNF21is333wzEPyi5PkQo/H9ueeeA5pX4TJo0CAAbrjhhlbPKfZ207mx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fr311lsLflfV1aQAhuap7pgXzX1GjhyZHSt17UBppUYp76quzLXXXguUVnhq/Jp33nmr2qZ6Q5VpX331VSB8R2xtHlZLrAAyxhhjjDHGGGOMaXKsACqBlD/33XdfdRrTQbTCWPyzFsTO+qo+0yhVZqRAWWONNYCgaCmFMuXad63V3RNPPLHFufWy37PSaL+0qnlByApIGaXYfvfdd0BhZR4pXy6++GIgVLRafvnlK9nsihF7EKy44opAqF714IMPAoV+GjNSX/zlL3/JHiujpex8M6Os95lnnpkdmzBhQslz5Tu28MILV75hTYjGMzMNVVuSKjH2VpL/VLOi8VhqTVXjK6XqkeLn0EMPBUJ1wmZWAKkiF8CHH36Y+/ekAs3jG6RKVkL98YADDmhxrqom1lL5IzT3a4s999wTCOpp3e8hqDB+9KNpOeqrrroKCNdc7AEkBZWUPi+88AIA2223Xfs/QJ2h60vzqPjzS/n05ptvAqHKla69uHLVI488AjTunKpcVJ03roo6o+8jmn+C1SzFvP766wX/j31et9lmmyq3pj7RvaD4nlA8ltcDVgAZY4wxxhhjjDHGNDleADLGGGOMMcYYY4xpcrrcFjBt/Tr55JNbPafUNp565sgjjwSC3DGWnkkOqy0olUal1KHQtBVCO+udrbfeuuBnOUiGC8HssS0z6WZCpTLzlMxUbHbdddfsmLb4PPvsswBMmjQJaC658vPPPw8EA97evXtnz2288cZt/u4ll1ySPS42B21mZOgcjy2t8c477wCFW1G17dAUoliptDIUGmCaYAItmrmUeWuonG1bJb2L0RawZuapp57KHn/wwQcVeY/vv/8eCNt/40IAxay77roVaUN70DY0mTfHBte696u92sJUChmOa+6oOG+55ZbZOYMHDwbC2LXVVlt1/APUKbPNNlvBzxjN8bVNcL755gMKt07vvvvuADz99NMVbWet+eqrrwC47bbbcv+OtiTuvPPOFWlTIyND43gOCrD//vtnj7vK95wZEVs1QJh/1mPRCCuAjDHGGGOMMcYYY5qcLqsAKoWUPzKBbhRkvCgFUJz9lqpgp512AoLyoLMVQco63H777S2eW2KJJQA45phjOvU96xGZ+0L43Pppui6vvPIKEDKZMmospfr57LPPgNCXDjroICCU+c3Dcsstlz1WxrXR+Pjjj4EQq1Ko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\n",
      "text/plain": [
       "<Figure size 1440x180 with 30 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "##########################\n",
    "### VISUALIZATION\n",
    "##########################\n",
    "\n",
    "n_images = 15\n",
    "image_width = 28\n",
    "\n",
    "fig, axes = plt.subplots(nrows=2, ncols=n_images, \n",
    "                         sharex=True, sharey=True, figsize=(20, 2.5))\n",
    "orig_images = features[:n_images]\n",
    "decoded_images = decoded[:n_images]\n",
    "\n",
    "for i in range(n_images):\n",
    "    for ax, img in zip(axes, [orig_images, decoded_images]):\n",
    "        curr_img = img[i].detach().to(torch.device('cpu'))\n",
    "        ax[i].imshow(curr_img.view((image_width, image_width)), cmap='binary')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### New random-conditional images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 2\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXlwleXZ/z9PQhaakARBNtmRtUIpIu4LVasjLhX3avuOtraOttrlZ7W/znSvvh3bd7rMWMf+Wpf6TrVuY9WK1VKVurKoVKACCmpkE5AlJJBwzvP74+F7nScngSwnOXlyuD4zmZOcnOW+nnt57ut7X/d1B2EY4jiO4ziO43SOop4ugOM4juM4Tm/GJ1OO4ziO4zg54JMpx3Ecx3GcHPDJlOM4juM4Tg74ZMpxHMdxHCcHfDLlOI7jOI6TAz6ZchzHcRzHyYGcJlNBEJwZBMHbQRCsDoLg5q4qlOM4juM4Tm8h6GzSziAIioGVwOlALbAQuCwMw+VdVzzHcRzHcZxkk4syNQtYHYbhu2EYNgL3A+d1TbEcx3Ecx3F6B31yeO9hwAexv2uBo7NfFATBV4CvAFRUVBw5adKkHL6y51i7di2bN28OWvtfodtYKPYBLF68eHMYhodmP18oNh7M7RQK38ZCsQ+8L+I29goOZGMzwjDs1A9wEfD/Yn9/Afjtgd5z5JFHhr2VfWVv87oUuo292b4wDENgUVjANno7PXhs7M32haH3xdBt7BW018ZclKlaYETs7+HAuhw+z3E0MScI2nYEnO6ntfpIp9PN/ldcXJz/gjmO4ySIXGKmFgLjgyAYEwRBKXAp8NeuKZbjOI7jOE7voNPKVBiGe4Mg+BrwNFAM/DEMw2VdVrL9IK84lUoBkcfcp08uAlvPErdH3n+2KlNUVFSQSo3qsKmpib179wKwe/duAMrKyujbty9Ar6nfxsZGduzYAcDy5dGm1oULFwJQWVnJl7/8ZaD3KDmpVMrqSPVSUVFhzxUVRb5YU1MTELVlPRdXrXqLve0hDMMWY1BRUVELGwuxvxYyqVSKPXv2ALB161Yg00/Ly8vp168f0HvGooMFjTMfffQRAO+88w5HHnkkAKWlpXktS04tIwzDvwF/66KyOI7jOI7j9Dp6zTRbysW6dVFYlmai6XSaMWPGAHDIIYcAGY85qezYsYP58+cDsGXLFgA2bdrEypUrgUz5KyoqAKiurjYv+BOf+AQAEydOZPLkyQAMHz4cgKqqqmbvTyryJqR2LFu2jBdeeAHIeIXTpk3jqKOOArD6TZpdsuP5558H4JprruH9998HoKGhodlry8vLTcG59tprgeTZI2RXGIZWZiktYRhSUlLS4jk9qp/GH+Xh631Jtbs1GhsbgcjjBZg3b561VV2bCRMmWF884ogjAPjkJz8JRIpkb7K3kFE7TafTpkJt2LABgCVLlrBgwQIA/v3vfwOZ9j116lS++MUv2u+QactOzxGGofXLH/3oRwDU1dXxk5/8BMj0xXzhvdxxHMdxHCcHEq1MyZPYs2cPK1asADCv8OOPPwZg3Lhx5mUoj0X//v0TGachtWLNmjU8+eSTALz66qtApLQpFmPkyJEA1NTUANE6vWyUtzR//nwOPTRK0XLMMccAcPbZZ9v7y8rKut2ejhKvT4D33nsPiLz+RYsW2e8A//nPf1izZg0Al19+OQAjRkSbR5MSjyL15a677gLg3XffNbUim1QqZTbqffle02+L7J17RUVFFrcmWlNZ9Pp0Om1Kq/prfX09AwcOBDIKqtptaWlpYuoyTjqdZvPmzQDcd999APz6178GIuVU10Aq8dKlS02pmDBhAgCf/vSnAbjooouYPn060DPt9qOPPuLZZ58FYPXq1UCkqkhB1WM8TkjlVH1Nnz6ds846C4gUcX1GbyFbCa+trTU1+eWXXwai67B9+3YAi3vctWsXAKtWrbK+qrFZbTpfZdcjNFd9pZyqPlqLQ1WcV3FxsbVd3R9V16Wlpb0uHmzr1q18//vfB+Cpp54Couuge6vmA/myK9FXTzfdtWvX8uKLLwJYg5esPmXKFOrq6gB45ZVXgGggGzZsGJCMG68mSeqkL7zwAkuXLgUyjXrIkCEMGTIEgKOPjnKfzpgxA4B+/fqZHK3P2LZtm92wnnjiCSCagABceumlnHDCCUByBr0wDG1w2rRpExDdaCGy/ZJLLgGwpc4333zTgrfHjRsHwKBBg4BoySwJaHDWknNpaakNeurA48ePB+Dcc8/l8MMPBzI3rgEDBtjrktBOs5ftOro81djYaHX22muvAdF1+OCDKLfvqFGjAJg5cyYAs2bNorq6GkhGO1U/3bBhA7/61a8AuPvuuwHYuXMnEG2M0LLzpz71KSCa5C9bFu292bZtGwCPP/44EE2wb7/9diAThpAPdCNdvHgxf/7znwGsjI2NjVZO3Yz1el2DOA899BC33XYbANdffz0A3/nOdwB6xGlrb/oU2aL7w+uvvw7A008/bU6sxqCpU6davaqun376aSCafOn1uv/kazIlUqmUOeOqq/fff593330XyGx4qa2tBWD9+vVWx3LwysrKzEHX5FBj6aRJk/jSl74EZJydJIxJraE2++qrr9rSrOqlrKyMN954A8jUu2zubnyZz3Ecx3EcJwcSqUxp5i2P9qGHHrLnTj75ZCBSpCAK8JSnr2WUBQsW8O1vfxvIqBk9iWb4WhaYNm0an//854GMFzBx4kQLONdz8dQA8rI0K9+5cyerVq0C4B//+AeAqXd33HGHLYnJ2+rpZc/6+npTnbSUN3r0aCBaRpCnNGvWLCDy/H7/+98D8PDDDwPRdYPoWiXBa5JXruDUjRs3mvd45ZVXAvC5z30OiNRFKT1qy8uWLbM61/JBTy7P5powtaioyGxUO926daspIlJSn3vuOQBOPPFESxchVbYnFSp58AsXLuSZZ54BMtdCSvgtt9xiyrH6ZxAEplJqDLr55puBSC1XQPNJJ53U7DO7E7WxjRs3snbt2mbl3bVrV7OlXMiMD0VFRbZUpPbQ1NRky56/+MUvAGzp8uyzz857X2zP94VhaCsbWgV46aWX7P/HHnssAGPHjgXg+OOPZ8CAAUAmhESq1QMPPGD9MnvZu6vJ7oPxepKKrb710Ucf8a9//QvILFdK9d+7d6/Vo+yIbyjR/9ROKisrLf3DV7/6VSAZanEcXRstTT/++OO2UqNrE09jIVvzlQjalSnHcRzHcZwcSJwyFYaheXK//e1vgchTuO6664CMOqF10KKiIlv31VbIhx9+2N77gx/8AOiZZGvZM2KVc+bMmaasSZEpLS1t4SW2pibpNalUymJQTjzxRCCKj4AodurBBx8E4Bvf+AbQ/R7V/pB3UFtba8qUvCd5txUVFVY/su/www83Je/NN98EMp7luHHjEuE1qX6ksM2YMcNiKWbPng3A0KFDgajuZZs85i1btrBkyRIgE6eh+LCqqqpEevwHIgxD65dq+x988AH9+/dv9pxi5+bNm2fxZldddRUQ9e+eCsxXW924caMFkJ9//vkAXH311UCkoLV2naRcSPFQ23722WdNQZYylQ9UnjPPPJPDDjsMyPStbdu2mTosJVX/W7p0qcW7KU5T7TX+u94fhmEiVOLWULkUl6dxsrq62q6JxuT4WKv2KQUEMmlqujvubX/Xsri42PqFVFDIxOgpPkjjYmlpqa1mqF3H61Hqll7T0NBg9Z3UVB6qF8UAzps3zxRtKYxBEFi8dPaxV93dThM3mdqxYwcPPPAAkAnsPeKII2xw08Acr3B1BC0RXXbZZTYgSOLV+/PZ8bO/Kx5srMHuQLuj4gHBahBxeTa7sWjC1NjYaDvlJPHmezKVfeN85ZVXrC60BDl48GAgui6yVXVZWVlpy52ahEnKvuSSSxIxmVLdaYCdMGGCXW/dbLS7Kz6ZV11MmjTJJoyPPPIIAI899hgAF1xwgeW0yVebzd79017iuzT1GbLxqKOOsgmW7JCztGDBAtuFoyXA2267zTIY5/smrTY1Z84c272mulU9tfcz4pn84wN9vtB3DR482EIdWhtPstm2bZs5Ld/97neByDlTvcq+nnLO2ksQBDb50PVX2eM7FkV8g4z6opbQ+vTpw5lnngn07A5cjY1qi+PHj2fu3LlAJpxFkwvI9Oe//S3Kq7127VpbwtTESu1g1KhRFoDe0yEh+0NjqyaC06ZNs3AKhbPce++95iDke/xI5hTUcRzHcRynl5A4ZWrdunXm8UuKPe2001pVpLKRFDt37lzbHqmtzVqKyef25Gw0U27N80+n06Y6SXGKz6zlZWgLaBAEzYJGIaP4bNu2zeyMB+Hlc6au71XeoYULF1JZWQlgaRskscfLFc97IvvkMWoZc3+5nPKNyqrl1mOOOcZyY8lTPFBAeUlJialz8hDvv/9+IFrSlJydr23Y8vyUSb8tstXSdDptSypKGzBs2DDzpPV6yfBvvfWWpfN4++23gYwavb/v6842rLrSuNMZ4ku4ECkFUhh7iuxrFgTBfq9jdXW1qRta9tHYA5lxdM6cOUByl4SAFvnAWrNZY+2ePXssh+FvfvMbILN0NnXqVE4//fRmn9kTqPxqp8OGDbNga6lvsqe8vNw2ZumesXv3bntO9yCpxnfffbfVbVKR3epP5513np00EN+Elr2Zp7NjRkfHm+T2BMdxHMdxnF5A4pSpMWPG2HbpeMxURzyC6upqS5Co+CslYLv00ksTFTApb72hoYEPP/wQyMQISbmpqqpqEbNQUVFhHpeek4IxceLEFucS5VOZSqfTLbZeH3fccVYmeQ7xGI7s1A/19fXm3SvIUp7G/uI9egrFUUyfPt220MvutuKPVHfyMGX/u+++a0loFb/T3V6xlN22yD5/T3VXVFRkcW5i4MCB9rlSbRS3UVlZaXUpNaysrGy/AaNJ6rf7Q2duKpni6aefblvuewtSaKRoQKYdKw2INlb0BlprN/FxF6I4vh//+MdARpHT+DtnzpxE2St7SkpKLHZNfUyxenV1dTaWKG7zhRdesL6qsVRpEGbNmpXY/pU9HsTT5+g53edff/11uw+2tvLRETr6PlemHMdxHMdxciBxylR5ebkpF/Ft5R2huLjY4h7kXel4h7lz5ybq3Lr4ERaKkdEsW9vlKyoqLAbns5/9LBDFHUnNkI2KVykvL2+x2yauFnV78rKiIvsOlfuss84yJU2xUIq1aWhoMFulWixcuNC2lEu1+MIXvgC0f2dVvpCtlZWVLeKDDkRckZOHLA8zlUrZLpzTTjsN6P5jdNqjfKVSKYutUplFWVmZ9S0do1NSUmLespQs/T148GA7P0tKcnV1dWI95AOhPqhjV6RWXn/99YmOK2oNJf+Nl1uKo1JYJHXHV3vJTuj5wx/+0OL31M+USuHCCy9M3Dma0HzHomIvlXZmw4YNlvRadbVjxw6zTTGN3/ve95q9JsloXNC9rbi42FZzdPxTcXGxxfN1dMd3dgzonj172q3WQwInU5CRlDubGyqVStlNOfvmtnv37kRNpkRNTY3lqFFeJaUCWLt2raU60A1pwIABZocqXx1rwIABNgHRoFFXV2cNI3sy0x1pBrKzvsfJzn/y/vvv25KuDmN99NFHLQBUW+V1fZLa8YMgsBuQbMx+BJq9ZuPGjfZeyGwiWLdunU1ENXnp7snUgSYxaisff/yx9S3VjxyXsrIyq2/Zu2vXLrNR5dcBumeccYbVqdprZWWlfVdvOXg1lUpxzTXXAJn2e+655wKZvGG9hT179tjmFQUnNzY28s1vfrPZc72ZpqYm2yiim/CiRYtsXNHB8RdffDEQOfVJnRBn3yslQKxbt4633noLiM7pg2hThPrnLbfcAiQ/xQU0H0sgs4S+dOlS7rnnHiDjzAwdOpTjjz8eaL9ooOVQ3Svl7HV0408yW4jjOI7jOE4voXe4fmSUpdY8/eyUAuvXr7dlI22d1Gy1tVPRexJ5Q4cccginnnoqkFFgNAN/+umnLYGcglm3b99uKpU8fSUmLSoqMjulOjU2NrYI9s3Hckr8O1pLPKqy6fw2SdMTJkwwtUpelzzmpHqJ0DLhqh5TqZR5PvHkmFJ31E7lKa5cuZLjjjsufwXfD/LalFRzyZIlpijqNIK4d6x2pzOzXn75ZVPWdK6m1I2BAwdalmm1iaamJvtO9Y2kLvupPd955508+eSTQGa58tZbbwWS3VbjqN4WLVrEwoULgUydzJo1y84S7S32xFE96Z7w4osvWvoDpdDp27evtecrrrgCiDbyQKSuJ7UNZqPxfvLkyXa2qcIF6urq7P6hjTK9Ad0H7r333maP77zzjqlIGoOOPvpoW/JsLxpntNKjx507d7Y7TQy4MuU4juM4jpMTvUKZCsPQZqA6AV2Bg6+88ooFDmpLa9++fS3xnILZpd40NTU128qdFOJJOBVYLk9p/PjxplIoJgMysTRKYqZkiKlUyk5513UrLy+3Gbfsz2dMSjzYWmVSsGRjY6OVXZ7VypUrzaPUOr/qK6le4v6O/YGo3SlYUtd9z549lmxO9itx3syZMy0GrqfsTafTFmQuD/6ZZ56x8ut/UpJGjhxpqpX+t3LlSvMUFbMXD+aNH0UDkTeYtNQXkCln/NgRnfv5u9/9zmy68cYbgcyxV0lHdklZu/baay3GTePRxo0bWbduHdD8CKj2kJ2AOJ9tWW3qmWeeAeDnP/85AMuXL7f2Gd8wccEFFwCZ8VQqTlJjNA9EeXm5xTZqjEmn06bOJenedyAaGhpMWZs3bx4QnfMK0X1E7UkK0tixYzue0mDftWgt3nXv3r3tHo96xWQqnU6b1Pfcc88B2LLQ4sWLbTKlfERDhgyxJSFdCP1v69atlolbSyqtLUUl4YYdzyeSvTTX2NhoN17t4lNj2Lt3rw0AGgRrampaNBrd3LrT1nj+KE2iss8LrKqqsmDrRYsWAdGkUa/TAN7dAdi50tjYaMt2mlToplNaWmqDsyaRy5cvtwOvFeyotjlw4ECbiOlGne8s9kEQWB0o59fq1attM4SWnlXHxcXFtkvojDPOAKKblPLcxLNNQ3QdNOnXwN/Q0GDXQsH4asv5PI9RZdW4obMWH3zwQe677z4gE9gLmcBfLdcmaRxpDU32NZ5+7WtfA6LxQmVX+/vwww959dVXgcxkP34iRfaNOQxDq2NNzNT21b67C5V9xYoVtjSpvH3xA4I1iZLjOnXqVBuDsnefNjY2Jn7JOZuGhgYb++OTATmmCthO2s7obNatW2f9TZsGtLN05MiRtklAdsyePXu/QfXx6xDPcRj/Pf6/oqKiVs9x3B+9Y3rqOI7jOI6TUHqFMhVfItGSgqTYsWPHmmql4OVBgwaZWrNkyRIgs+zQ1NRkXpOC8Pr06WOzT3kj8rZ6QuKV1yhbn3jiCcuTpVn3sccea0uYUmykhsTzPOmzVqxYYV6h1BB5Z12dQyUMw2aZzCFSHnTdpTCo3PX19Sbdys6XX37ZyqvH+EnnSfIQFWz9yCOP2PKzctQo6/uwYcPMm5f9VVVVthydnTG+tLTU6q41LyofxD05KUjr1q0ze6XaqK4h0wZPOeUUIFJsFHCuJQb112XLlrF8+XKgeQoPXafsJcMZM2bkxf5UKmWbP+QVP/jgg0CkzKlc8fQfClZ+7bXXgIxaPGjQIOtnSVlaCcPQ7LvhhhsAWiztQca+mTNn2ngrxU7tobi42Pqn3rt9+3ZbWtMGA+WI6y5lSm31n//8JxAFkSvsI3uZpk+fPtbGlLqiurrabNIyru4FdXV1ppJKzU9KXYrsjO433XSTnXep8b2mpsZy1mXbmNQ0JGvWrLGVJ9moseWnP/2prVrIjjAMrW6yQwiampps7NVjOp1uYbveX15e7mfzOY7jOI7j5Is2p6NBEIwA7gWGAGngzjAMfx0EwSHAA8BoYC1wcRiGH3dLIfv0MU9PM0rFYQwZMsTUGsVd1NbWWsJLecNaI66trbWZpzzm6urqFmviPRGfIyVCsRi33347EHnFislQBvSJEyeal6c4HXnAJSUlLWI9tm3bZl6VvMzuUt3CMDSlSd5RY2OjlVfXVnW5atUq/vKXvwCZGA7IpIgYM2YM0PxMOL23JxUqKRQ6y+zWW281D1/xRD/72c+AKP5H7U5xGq1l+46v28djNvR9auv58CSDILDyqR/V1dVZu4nHg+lx5syZQOYU+379+pmSpfQKUgAaGhpsQ4n67pAhQ0yFVvyRvM/urmtd7y1btpjCqMe4EqM60KaBcePG2TWRsqqA7hEjRnDRRRcBcNRRRwE9H/uXTqd5/vnnAexai8rKShtr1f9uuOGGFudpSl2sq6uzcVT9YcGCBfz9738HMqqtFFoleO1qFGStjN5btmyxsqp9qt+NHTvW7FEdHnLIIdbPdK+Iqx0ak5V+pqKiokUfVN/Np8qja65Y0+uvvx5ovoFn+vTpAFx22WUWF6YYSI1JQ4YMsXaZJNWtpqbGxhKpaUqQO2zYMKtb1VUqlWpxdqjGmNWrV1vqEsXwlZeXt4g5Fh2tx/Zctb3At8MwnAwcA1wXBMEU4GbgH2EYjgf+se9vx3Ecx3Gcg4o2p15hGK4H1u/7fWcQBCuAw4DzgFP2vewe4Dngpu4oZBAEtptN8T7yVmtqamwGHo/BkUckTyiuBmg2q9l5fX29pU6QupNvxaOpqcnW+B977DEgs2NxxIgRtravGJv42Ut61C6o4uJiU0i082rgwIGMGjUKaL4TpztIpVLm0SvB2tChQ80rkMom7/b+++83z0p1eMopp9gJ9VKmpGzFUxD0pDKleDB5Pps2bbKYBbU/EQSBlTme4iGeOgEyO4lWrVpliqNUm0GDBtmJ6flSpqRmqv2NHDnS4mbk3SteKL4TTzZu27bN7JB6I2V0x44dtutWSvPw4cOtr2anxOguZI/a46pVq0xFE7J/+/btZrdU4lGjRpkSqaOgpMyuWLHC4pMUN3TOOee0upM4X6xcudLOEMw+E3L48OGWhmXu3LlANHZK6da4ojafTqetvvSat99+25Si+LmV3YnKJQWxqKjI7hmqr5NOOsnsUZvS7sQhQ4ZY/1R71Xj88ccfm73xNpytsOcrvlbtddOmTfzyl78E4E9/+hOQGXeKi4ttnJXdAwYMsDau9q3x5phjjjHlVPfWJJxHWF5ebu0rnthXj9lJghsbGy1GSvX30ksvAVEb13xAtlVVVe13fOnouNOhETkIgtHAp4FXgcH7JlqEYbg+CIJBHfrmDlBUVGSynDqnLtT27dtNppNMW1FRwZlnnglk5Lz4UoFep07QWkfPV8dQB96wYQOPPvooAE899RSQmewNHz7cJE41jAEDBtiApUc1IqDFktqkSZNswtjdN+KmpiYbWJUXq7a21pYUtCygG897771ng9rVV18NwAUXXGCSdPb5U/EA+55EE28N1hMmTLDBfMaMGUDmprpgwQILYtX7du/ezRNPPAFggdjK57R582ZrG5qgXH755bZckq9Jv26yysHTp08fa5faoqw2pq3Y0DxdguzWzS2eg0l9MD7BzHdOoviB2wDz58/n2WefBZrfnCCaOOk0hc985jNA1BeVEkIB0IsXLwaiJXvdsBR6MHnyZOuLGruyNyB0B7Lzj3/8Y4vM85rUx51NOUQvvfSSTf40MZRTN2bMGLu5afwpLS21Nqt+oHbbHZsowjC0ibe+T/ZA5uQELd8NGjTIyqMDuQcOHGjlUp3HN89omU/9bteuXVZX+eqL6lNK9XDjjTfa/UBl1ZhRUlJi5dOB8fETCrQxS2Pq5s2bzfE+4YQTgCibvz5D7US2duQA4FwYOnSoTQpVB9oUUl9f36Ltbdq0ycqmRy1zTp061cas7pgotrvnBkFQCTwMfCMMwx1tvT72vq8EQbAoCIJFmhUXGoVuY6HbB25joVDoNha6feA2FgoHg41x2iVRBEFQQjSR+t8wDB/Z9/TGIAiG7lOlhgKbWntvGIZ3AncCzJw5s1OpjYMgMA9WXq1mynV1dS08yylTptjr5LHEUwVkK1OQ8Tw74xl2xsa4VAvwhz/8gbvuugvIKE2aPdfX15tKI4Vt586dtvwjFSjulWjZRO+bPHmyLcd0NAFde+2Lb0GWB6DH1atXWxCzvEHZMnv2bAsqlEJVUlKy3/K117uNZ61uq147U4fy0rRVNx74rzYpr/Cpp54yL1ADS21trW0QkIclgiAwxUfSdP/+/Zsl8NTr2ktnbNR1UxkuvvhiUyfU/qTGDR48uNlZkBApHVKmZI/aXzepFB22UV79/PnzgagvSn2TcqQl8tGjRzNnzhwgcw5fSUmJ2aRz3c477zwgUl3lNUvx2LFjhy0lqT73l2iwK+wTKsf8+fOtftSO9He8n2p5pW/fvlY+XQ9tNBg3bpyNtfqM3bt3t7BL6lA7+22n+6KC5tesWWPtUnZLEZ88ebKVX8+VlpZaHWo1Q314586dNi6pn5aVlVl77oyS2hkbpfx+/etfB6JNLtn3Ml3vQw891BRz9d2xY8fa/SbedlV2jdWyccWKFfadWgmSyiP1qqttzKampoazzz4byCi72tywePFiK3Nc2dXrZ8+eDWSS/5aWlnaretjmzCGIvv0PwIowDP8n9q+/Av+17/f/Ah7r+uI5juM4juMkm/YoU8cDXwD+HQTBG/ue+7/AfwN/CYLgS8D7wEXdU8QIefXypOQNVVZW2vp4PNh8f+e4xdeSs5+P050BzmEY2vq00h/cc8895knpu6XcDBgwwIJ2peqMHj3avD95uVK7qqqqzKvUZ5SUlHT7lux4WgltFFBcSVxpUnyJPIgpU6ZYedtzvePB3CKucmR/Rnd5I9nnQp1xxhnmzUqhkkdbWVlpnpXW/tevX98stiP7M+VZarvzqaee2iJWIV+B+Oozhx56qNWVFAx5x3V1dWaP+uegQYOs7+arXjqK7Fi4cCEQxdtI6VBi329961tAlN4g+8y2uB16Tn2zf//+ppjr2uzatatFqpd8IGUsHhcl1SZ+1I+UOpVx9uzZpuTIdqncZWVlLdpwa0dwdGcsWFzFVX2df/75FocoZeKSSy4Bojiv7KO0Wiuf6rJ///72f7X1ysrNhtooAAAGE0lEQVRKu4b5ODM0DEPb5KDg8VQqZX1L/e38888Honaqe4Vijvr162c26Z6hONZ0Om3qoT5r06ZN1mYU4B8/QikfFBcX24YIpbHQ2FpbW2uxxLrfXHrppXaUlezJV/xze3bz/QvYXys5tWuL0zbZAaut3UTb6ritBZ9l77TqSrJveOl02m66agSnnXaaDbpq/Oeccw4QSenZgXMlJSX7PURUz0PzhpSv86WKiopsEqGJwFVXXdUs8zdkbOlMebLPU0qlUvb58eU9lScfxM8py17mPPbYY+2mo0DYjRs3Wl4tLfdp5+Ipp5xi+VW0mSAJk48gCGwpQROOtl6fhHIfCNXRddddB0SDsNqSzv7SjamtpQL9Lx42kL0bKZ5fLJ/XRktaF154oS3faMk5noPp9NNPBzJ5sSZPnmyTFb0uPkE+UDBvvuyTbSeffDIARx99tC1Xqf90NBN9/H4S30kMzSeM+XJotGlBTlZjY6MF+l911VUAtgO6pqamxUajuBOqibLev3v37hYhMUEQWMZ0bRZasGABgOVOywcSBO644w4g4/SkUqlmy+8QTfaz7cgXycnO5TiO4ziO0wtJ5oE87SAX6e5AM1apOl2pZmR/X3FxsQUAKn/NlVde2WXflwR0/aRC6bGr0bWNL5f0hNffFsXFxdZmtSlg0KBBtnzbG0lSpuRckGIxbdq0Zo9dQbwN9vT5Z1KXrrjiCksNoNQlUj2GDRtmSp3Unj59+uRlKSsX4iEG8ceu+uyezrkUBIGFR9x0U5TOsb6+3pbAtJrR1skQ2as3GpPiKx1xdV2v17LoWWed1YVWtQ+VQeqwHpNGYYyGjuM4juM4PUSvVaa6mp5SM5Lq6TmOU5hUVVVZVmw9OslH8WpKu9EV6P7TlvKmjQfO/nFlynEcx3EcJwd8MuU4juM4jpMDPplyHMdxHMfJAZ9MOY7jOI7j5ECQnUm6W78sCD4CdgGb8/alnWcgzcs5KgzDQ9t6UxAEO4G3u61UXUuHbezldQiFb2N72+nBYKP3xeTgfXE/HCQ2FnRfhDxPpgCCIFgUhuHMvH5pJ+hsOXuLfVD4NuZSTrcxORR6O4XCt9Hbafe9N58UejuFzpfVl/kcx3Ecx3FywCdTjuM4juM4OdATk6k7e+A7O0Nny9lb7IPCtzGXcrqNyaHQ2ykUvo3eTrvvvfmk0NspdLKseY+ZchzHcRzHKSR8mc9xHMdxHCcH8jaZCoLgzCAI3g6CYHUQBDfn63vbIgiCEUEQ/DMIghVBECwLguCGfc//MAiCD4MgeGPfT5vHZbuNPUdX2ZhU+6DwbfR26jZmfU5B27fvPW5jD9GVNgIQhmG3/wDFwDvAWKAUeBOYko/vbkfZhgIz9v3eD1gJTAF+CPwft/HgsTHJ9h0MNno7dRsPFvvcxsKxUT/5UqZmAavDMHw3DMNG4H6g646+zoEwDNeHYbhk3+87gRXAYZ34KLexB+kiGxNrHxS+jd5OO0Sh21jo9oHb2KN0oY1A/pb5DgM+iP1dSw6F7i6CIBgNfBp4dd9TXwuCYGkQBH8MgqB/G293GxNCDjb2Cvug8G30dnrQ21jo9oHbmBhytBHI32QqaOW5RG0jDIKgEngY+EYYhjuA3wHjgOnAeuCXbX1EK8+5jXkmRxsTbx8Uvo3eTt1GCt8+cBsTQRfYCORvMlULjIj9PRxYl6fvbpMgCEqILub/hmH4CEAYhhvDMEyFYZgGfk8kVx4It7GH6QIbE20fFL6N3k7dxn0Uun3gNvY4XWQjkL/J1EJgfBAEY4IgKAUuBf6ap+8+IEEQBMAfgBVhGP5P7PmhsZedD7zVxke5jT1IF9mYWPug8G30dmq4jYVvH7iNPUoX2hjR0Yj1zv4AZxFFy78DfC9f39uOcp1AJDsuBd7Y93MW8Cfg3/ue/ysw1G0sfBuTat/BYKO3U7fxYLLPbSwcG8Mw9AzojuM4juM4ueAZ0B3HcRzHcXLAJ1OO4ziO4zg54JMpx3Ecx3GcHPDJlOM4juM4Tg74ZMpxHMdxHCcHfDLlOI7jOI6TAz6ZchzHcRzHyQGfTDmO4ziO4+TA/wcwEuG70LAGqwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 3\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 5\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXmYlXX5/1/PmZUBRkF2UBmQRQkTWVoUDX9luJTaYu6mXVam2a6SoVkWZfml1CwxKJdy6RJNStHUMrdQECSRUNlkFEYZBhlZz8w8vz8O7/t5ZmE9M3OeOdyv6+Ji5syZOc/9fJbnc7/v+3N/gjAMcRzHcRzHcfaOVK4vwHEcx3EcpyPjiynHcRzHcZws8MWU4ziO4zhOFvhiynEcx3EcJwt8MeU4juM4jpMFvphyHMdxHMfJAl9MOY7jOI7jZEFWi6kgCCYGQbAkCII3giC4srUuynEcx3Ecp6MQ7G3RziAICoDXgE8AlcCLwJlhGL7aepfnOI7jOI6TbLJRpsYBb4RhuCwMw23APcAprXNZjuM4juM4HYPCLH63P7Aq9n0l8KGmbwqC4MvAlwE6d+48evjw4Vl8ZO5YsWIFa9euDVr6Wb7bmC/2AcybN29tGIY9m76eLzbuy/0U8t/GfLEPfCziNnYIdmZjI8Iw3Kt/wOeB38e+Pxe4aWe/M3r06LCjsv3ad3lf8t3GjmxfGIYhMDfMYxu9n+47NnZk+8LQx2LoNnYIdtfGbMJ8lcCBse8HAG9n8fccx3Ecx3E6HNkspl4EhgRBUBEEQTFwBvBQ61yW4ziO4zhOx2Cvc6bCMKwLguBS4FGgAJgRhuGiVrsyx8kDwu27ZcMwJJXysm5O/hOGIUGw6xQTx8knsklAJwzDh4GHW+laHMdxHMdxOhxZLaYcJxu2bdsGwJYtW9i6dSsAb731FgDFxcUMGDAAgM6dOwNQUFCQg6vcMxoaGoDINnnoRUVFObumtub9998HYNmyZbz88ssAVFZWAjB06FAGDRoEQFlZGQDpdBqAuro6unbtCmD/l5aWUltbC8B+++1nrwEUFiZrupLqmE6n2bBhAwDr168HMv0XoLy83K5b7w+CgJKSEgCzVe8vKyvrcApmfX09AFVVVQC89tprHHTQQQDW9k7uqKurA+Ddd99lzZo1QDQG33vvPQA2btxIv379ADjssMOAzLybBIVR16/+tXLlSiAz127evBmA5557DoBXXnnFbDzwwExK94UXXgjAMcccY+OsLehYo9ZxHMdxHCdhJMvVa8KmTZuAzKrzzTffBGDVqkxpKykAw4YN49BDDwUwb6+4uNg83fLyciDybpOw0t5d5MmuW7eOqVOnAvD3v/8dyNh/xBFHAJFXK49iyJAhDBs2DIjUgE6dOtk90H2SB5yre6L2feaZZ5gxYwYQeSGnn356M2Ui6cpUGIbm8dXU1ACR8lBaWkrPnj3ta+hYfbEl1D+fffZZAH7605+ycOFCIOpjw4YNY9SoUQD06dOn0f9VVVV069YNgA99KFOirn///naf2tKLzAapqK+//joAc+bM4dVXX230M9nVv39/G4tSWGtra6moqACiPq2fderUqT1M2GPU1lJcFyxYAMC1115rc7MUg23btpki9fzzzwOw//77t+v17grZofGZTqeb2ag+rK3vEM2ZBQUF9vOmymkQBDkf21u3buXcc88F4G9/+xuQiQCIlq5Pz8yvfOUrAEyePJkuXbq09aXulIaGBlOaHnzwQQDuueceIKOmSa2SQrVx40Z7huja9RwZNGiQjbu2aJ9EL6bUcVevXs29994LwEsvvQREk1ZRUZEtGNRZgiAwyfKrX/0qACeffDKQmciTFi7YERrUM2bM4Fe/+hWQ6SyQuTdLliwBGocIAPr27WsPJN2TLl26MHHiRAA++tGPAjBixAggM2nkIrSgTj9jxgwef/xxIJqYBgwYwODBg4FokOvBk0qlcj5Z7Qhdo/qYHrKbN2/mIx/5CBDJz0lfHO4u6qd6mEK0ODj88MNtMnv77UzllEWLMvtU6urqOPHEEwHo0aMHkJn4khwS3bhxI3fccQcAd999N5BZOGsRLVs1ng466CAL/WlRVVFRYT/XPKb71dDQkJh+IYd1w4YNNv/eeeedQCacApnr1zjW/4DNTdOmTQPg8ssvb5+L3gm6vsrKSu666y4g48hBpg31czngGsOafyAK1w8ePNjGs5x5jevCwsKctaHabMqUKfz1r38FovGZSqUaLfggCtFCZPfo0aOBZDgzW7dutba65ZZbABqlAcQXSpB5zr3zzjtAtIAfOnQokJlj2vK54WE+x3Ecx3GcLEi0RKNVdENDAytWrAAipUWr7bjKpNe2bt1qK9AHHngAgBde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MiVv/fjjj7dt5fJ+dD7P448/brujlK/Rs2dP25mheLF2PXXr1q3dtkruLcqtkQpVV1dnKsXPf/5zAK644grbYt9RFCl5RfL6ZWdNTY3tuqysrAQyu2ZUlFQkaTdYGIbWx+LHHcQLWEKk2owbN44bbrgBiEoDbNy40e6F2ldb1OfNm2e5UipoOXToUNuSnoTty/KCpQiffvrpiWibbGloaLD72/Qsrx49etguRrVVYWFhYu2uqanhuuuuA6Lds3HlSEfc3HjjjUCUl7InLF++HIiU9MGDB+dcoayvr7cd3XpmSGWsrq62r6V6XH755VbWoyOenak8N9G9e3cri6NxGgSBqTUd5bzTI444wtR65ZeqXYcNG2bjVOpTbW2tzaWan2Xz0KFDLQ8wriq3FrmfkXeCHp6TJk0yiU8H/upBs3r1aqvHFH+QaWArVKTOc84559hBjmqkpAwaPYAvueQSILIRogERL/HQUSRboQ6vcgAK2dbW1vLII48A0cR8/vnn20BRCYt4Rd/23o7c9Pyx9evXW30lXft7771n/UwLoK997WsAfP3rX282gIuKimxBrFC1ymFUVlaavaq0fMABB1hSaS7bXP1O9Xs0Wc2aNcvOf+yIDySRSqVsK/yZZ54JNF7sPv3000BUmf/oo4+2xUNSFvxqoylTpjB79mwgmk/KyspsXtQB09rYEK83tDt//3e/+51tlFHV+11V9m8vlE6geUZOdENDgzkAmmtPOOGEZmEkvT/JCw7ZpnlD19q1a1eeeuopIArHL1++3Nr2c5/7HBDVYuratWsixYXu3bubWKJUlx//+MdAZoOAQtK6Dy+99JI9X3QmplIpPvCBD3DNNdcAUa2/1uynybt7juM4juM4HYhEK1OipKSESZMmAXDuuecC8I9//APISLiS26VqVFdX22q0aRHFqVOnmpepQnV7mnDZVsjDl0chUqmUyfJabd97770WwtR5YLlO+txdjjrqKAAefPBBIBPu0kYBKQLr1q2zMKDaR55ijx492v3cKIUKlNT68MMPW5V9KW4jR47kgx/8IAAf//jHgSj03Llz52ZeUDwpXUnm6sO1tbXWngq9HHTQQY3KZOQKtYPaT2Gve+65x8bdt771LSDjDcargXcEUqmUbVhRcWBVoX/mmWfMRp37uXz5cquMPXr0aCD3tko1W7lypfVPpU188pOf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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 6\n"
     ]
    },
    {
     "data": {
      "image/png": "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2bXB0mvy8/NjOUm3hJ556dKl/O53vwOwQNeBAwfaRrFv374AXHjhhUDyyChuaF587bXXALjpppsAeP31123DpLbp06ePJRFoU5UraP7dunUrI0aMAOCb3/wmEN/xtqvIyfnhD38IwOzZs20zoU3Uj370I/u/nLxsOY6vr6+3eVPzTUlJCcceeywAY8eOBaBTp07Ajs5cS7ala68f8zmO4ziO46RB1ilTb775JgC33XYbkAgyU3D51VdfDcAxxxxjUp8KscU1rV7p1ffdd58FeQ4aNAiAn/zkJwCcfPLJLaZypgYyZyOSVTds2GABkQrC79Gjh70ParvdWXCtLWhoaODf//43kDjygoRtkPD8DjjgACB59FNXV2ffVz9YtWoVkFA91K9ld2lpaSyLQUpi37x5sx1ljh8/HkiUBpDHK+J+XJuKxphsvP3221mwYAGQVMJPPfVUU6DUZirNEsexGUWRhQtoHlWKfJcuXUwRly09evTgkEMOAXKn8KraVXNubW2tKeBq12zn97//PQD33HMPkGh3zUEqAyH1O1UljmuwuZByun79eps/1S9PPPFEaz99LXUMqt2l2qWuKa5MOY7jOI7jZJCsUabkuUutUdmAjh078r3vfQ9IKDiQTPeE5FmqdqANDQ2x2nkrhby+vt7iEc4880wAJk6cCOxYBkHPvmbNGlNsevbs2a7P3FZUVVUBiZIWTz75JJD0GPbZZx+LP2kaNBg31CZbt27lkUceAeDdd98FktcZTZo0iS996UtA8gy/rq7OYjYUdyT7161b10zBKSgosKJzcVLpXnjhBSCh3uj5vvvd7wKJvtuUuLdnKuqjUk4fffRR83g1PidMmGB9taX4jLjR0NBgAecKppfHPmjQIIv3koK6atUqUzDi1O9aS2Njo60nUjk2b95sNsZR/f2srF27liuuuAJIzk8DBgywhCytHSI12DyuaG5U/POcOXMYOXIkkCzKXVRU1KIiBQkb1c/1sS2vmInviG/C4sWLgeSxnQIohw4davVAUmtIKTtMAc3K/uvTp0+zehqZRHaEEGxTdNxxxwHJhSi1sTUwqqqqbMLOts2UBsWrr74KJNpoy5YtQFJiP+aYY2xTrNfHdYHS87322mtUVFQAyYXommuuARJHQambfEjYo4lbCRMKqFyzZo0t5JoA16xZwymnnAJgmxb1h0wsclqI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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 7\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 8\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 9\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXuUlXX1/1+fmWGGGUBugiAYoiBhaiKal7yEhvfL+hlYiZiXRMVbaWtpqZVppaa20tQ0i/RbgmZZeAtv4TKCFBRBQ5RBFGy8AAICw8ycmef3x8N7n8OZEQZm5pznHPZrLdYMZ+bM+eznc3k++733Zz8hiiIcx3Ecx3GcbaMk3w1wHMdxHMcpZHwz5TiO4ziO0wZ8M+U4juM4jtMGfDPlOI7jOI7TBnwz5TiO4ziO0wZ8M+U4juM4jtMGfDPlOI7jOI7TBtq0mQohHBtCWBhCWBRCuKq9GuU4juM4jlMohG0t2hlCKAXeAkYDy4CXgW9GUfTf9mue4ziO4zhOsmmLMvUlYFEURYujKKoHpgCntE+zHMdxHMdxCoOyNrx3ALA04//LgAOzfymEMAGYANClS5eRn//859vwkfljyZIlLF++PLT0s2K3sVjsA5gzZ87yKIr6ZL9eLDZuz+MUit/GYrEPfC7iNhYEm7NxE6Io2qZ/wFjgvoz/jwfu2Nx7Ro4cGRUqG9u+xetS7DYWsn1RFEXA7KiIbfRxuv3YWMj2RZHPxchtLAhaa2NbwnzLgF0y/j8Q+F8b/p7jOI7jOE7B0ZbN1MvA0BDC4BBCOfANYGr7NMtxHMdxHKcw2OacqSiKUiGEi4FpQCnw+yiK3mi3ljmO4ziO4xQAbUlAJ4qiJ4En26ktjuM4juM4BYdXQHcKBiX6OY7jOE6S8M2U4ziO4zhOG2hTmM9xOoooiqirqwPgzTffBGDt2rUA7LbbbvTt2xeAsjIfwk6yaWpqAiCVSgFQWlpKaWlpPpu0VURRRAhbLrPjONszibwTafHR14aGBhobGzf5nYaGBgBqa2vtZ/p9gB122AGAiooKADp16gTEN98kLgx1dXU88cQTAFx33XUA/O9/caWJVCpF9+7dAfj2t78NwHe+8x26du2ah5Z2DArfrVu3DoC//vWvXHPNNQAsXRrXhi0vLwfg3HPP5corrwTgc5/7HEAi+/Sz0Hitra21Ppb9gwYNAqBz5875adw2oLn497//nXvvvReAVatWAdCtWzfGjx8PwGmnnQZAVVVVHlrZ/qjPVq5cyWOPPQbA/PnzAXjnnXcA6NOnDyUlcQBAY/Twww/n2GOPBeLrAzT7nVy1XfPt1VdfBeDJJ5+07999910ANmzYYPPslltuAWDkyJGbtLtQ0T2jsbGRDRs2AGkHTetNSUlJQa0vn0V9fT2rV68G0ht79V9FRYXdK7XRDyHYz7PTK0pLSxN5TdatW8fbb78NwKJFiwB47bXXANh555058cQTARgwYADQvuO3sGeC4ziO4zhOnkmcMhVFEUuWLAHSO8qnnnqK5cuXA2lPQjvskpISPv30UyDt8e+www4WBpKHr133ueeey/777w+QCKld9tx1111cddVVQOxBZFJSUkJtbS0At956KwDPPPMMV199NQBHHnkkULghr1QqZV7wb37zGwAeeOAB1qxZA4AeQyBvasmSJdb/un5J6MuWkEeXSqX44IMPgFjBAZg0aZIpUzvttBMAJ510EgBXXnll4pVH9c8PfvADAO6//34bu1KGq6qqTGmtqakB4Lvf/S5QWOpbJrLxySfjg8zXXXed9e2IESMA2GWXuJ7x6tWr+fjjjwH46KOPAJg3bx5vvfUWkL4WXbp0ATpWmdJYrK2t5V//+hcAP/nJTwB44424qo1C65BWHFOplK3Jp59+OgCPP/44AMOGDeuw9rY3Wj9effVVbrjhBgBefvllIL4mWj933XVXIK2+jRw50u4ZQ4YMAeL+Sroqp778/e9/D8A999xj98gvfelLQHq8fvGLX7Q1SGtpTU2NzVnZn3lfzfea29TUZErwhAkTgFgZ1j0hey6FEGzt/cMf/gBAv3792q09yR4NjuM4juM4CSdxUsbq1at58MEHAXjkkUeAeIe8++67A+mdsXJLoigyD1mefAiB9957D4APP/xwk78/bNgw9tprLyDtDeYTeX8PPvigeY6K1aud3/zmN81rmDt3LhB7t5deeimQ3pVffPHFm7w/6axfvx6AqVOn8vDDDwOwYsUKAI499lgOPDB+bvbQoUMBLBY+bdo0i4fLM863l5SNlES1+YknnrDcr+rqaiDO49N4lnKqcVtdXc3ee+8NJC8vRR6vlNHf/e53QGzPRRddBMA555wDxHNXytTf/vY3AMaMGQPEXn4S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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(10):\n",
    "\n",
    "    ##########################\n",
    "    ### RANDOM SAMPLE\n",
    "    ##########################    \n",
    "    \n",
    "    labels = torch.tensor([i]*10).to(device)\n",
    "    n_images = labels.size()[0]\n",
    "    rand_features = torch.randn(n_images, num_latent).to(device)\n",
    "    new_images = model.decoder(rand_features, labels)\n",
    "\n",
    "    ##########################\n",
    "    ### VISUALIZATION\n",
    "    ##########################\n",
    "\n",
    "    image_width = 28\n",
    "\n",
    "    fig, axes = plt.subplots(nrows=1, ncols=n_images, figsize=(10, 2.5), sharey=True)\n",
    "    decoded_images = new_images[:n_images]\n",
    "\n",
    "    print('Class Label %d' % i)\n",
    "\n",
    "    for ax, img in zip(axes, decoded_images):\n",
    "        curr_img = img.detach().to(torch.device('cpu'))\n",
    "        ax.imshow(curr_img.view((image_width, image_width)), cmap='binary')\n",
    "        \n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numpy       1.15.4\n",
      "torch       1.0.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "%watermark -iv"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
